Skip to content

Commit e6b80b9

Browse files
Merge pull request #349 from ComputationalRadiationPhysics/develop
Release 0.2.0
2 parents ee42a8c + 38c0d0b commit e6b80b9

File tree

183 files changed

+10636
-2788
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

183 files changed

+10636
-2788
lines changed

.travis.yml

Lines changed: 263 additions & 172 deletions
Large diffs are not rendered by default.

Findalpaka.cmake

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,11 +37,11 @@
3737
# - ``ALPAKA_ACC_CPU_B_SEQ_T_SEQ_ENABLE`` {ON, OFF}
3838
# - ``ALPAKA_ACC_CPU_B_SEQ_T_THREADS_ENABLE`` {ON, OFF}
3939
# - ``ALPAKA_ACC_CPU_B_SEQ_T_FIBERS_ENABLE`` {ON, OFF}
40+
# - ``ALPAKA_ACC_CPU_B_TBB_T_SEQ_ENABLE`` {ON, OFF}
4041
# - ``ALPAKA_ACC_CPU_B_OMP2_T_SEQ_ENABLE`` {ON, OFF}
4142
# - ``ALPAKA_ACC_CPU_B_SEQ_T_OMP2_ENABLE`` {ON, OFF}
4243
# - ``ALPAKA_ACC_CPU_BT_OMP4_ENABLE`` {ON, OFF}
4344
# - ``ALPAKA_ACC_GPU_CUDA_ENABLE`` {ON, OFF}
44-
# - ``ALPAKA_ACC_CPU_B_TBB_T_SEQ_ENABLE`` {ON, OFF}
4545
# - ``ALPAKA_CUDA_VERSION`` {7.0, ...}
4646
# - ``ALPAKA_CUDA_ARCH`` {sm_20, sm...}
4747
# - ``ALPAKA_CUDA_FAST_MATH`` {ON, OFF}

README.md

Lines changed: 28 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,11 @@
11
**alpaka** - Abstraction Library for Parallel Kernel Acceleration
22
=================================================================
33

4-
[![Build Status](https://travis-ci.org/ComputationalRadiationPhysics/alpaka.svg?branch=develop)](https://travis-ci.org/ComputationalRadiationPhysics/alpaka)
5-
[![Build status](https://ci.appveyor.com/api/projects/status/xjeyugcg1cb0662s/branch/develop?svg=true)](https://ci.appveyor.com/project/BenjaminW3/alpaka-vuiya/branch/develop)
4+
[![Travis CI Build Status](https://travis-ci.org/ComputationalRadiationPhysics/alpaka.svg?branch=develop)](https://travis-ci.org/ComputationalRadiationPhysics/alpaka)
5+
[![Appveyor Build Status](https://ci.appveyor.com/api/projects/status/xjeyugcg1cb0662s/branch/develop?svg=true)](https://ci.appveyor.com/project/BenjaminW3/alpaka-vuiya/branch/develop)
6+
[![Language](https://img.shields.io/badge/language-C%2B%2B11-orange.svg)](https://isocpp.org/)
7+
[![Platforms](https://img.shields.io/badge/platform-linux%20%7C%20windows-lightgrey.svg)](https://github.com/ComputationalRadiationPhysics/alpaka)
8+
[![License](https://img.shields.io/badge/license-LGPLv3-blue.svg)](https://www.gnu.org/licenses/lgpl-3.0.de.html)
69

710
The **alpaka** library is a header-only C++11 abstraction library for accelerator development.
811

@@ -15,7 +18,7 @@ There is no need to write special CUDA, OpenMP or custom threading code.
1518
Accelerator back-ends can be mixed within a device stream.
1619
The decision which accelerator back-end executes which kernel can be made at runtime.
1720

18-
The **alpaka** API is currently unstable (alpha state).
21+
The **alpaka** API is currently unstable (beta state).
1922

2023
The abstraction used is very similar to the CUDA grid-blocks-threads division strategy.
2124
Algorithms that should be parallelized have to be divided into a multi-dimensional grid consisting of small uniform work items.
@@ -36,7 +39,8 @@ Software License
3639
Documentation
3740
-------------
3841

39-
The source code documentation generated with [doxygen](http://www.doxygen.org) is available [here](http://computationalradiationphysics.github.io/alpaka/).
42+
The [general documentation](doc/markdown/Index.md) is located within the `doc/markdown` subfolder of the repository.
43+
The [source code documentation](http://computationalradiationphysics.github.io/alpaka/) is generated with [doxygen](http://www.doxygen.org).
4044

4145

4246
Accelerator Back-ends
@@ -49,6 +53,8 @@ Accelerator Back-ends
4953
|OpenMP 2.0+ threads|OpenMP 2.0+|Host CPU (multi core)|sequential|parallel (preemptive multitasking)|
5054
|OpenMP 4.0+ (CPU)|OpenMP 4.0+|Host CPU (multi core)|parallel (undefined)|parallel (preemptive multitasking)|
5155
| std::thread | std::thread |Host CPU (multi core)|sequential|parallel (preemptive multitasking)|
56+
| Boost.Fiber | boost::fibers::fiber |Host CPU (single core)|sequential|parallel (cooperative multitasking)|
57+
|TBB 2.2+ blocks|TBB 2.2+|Host CPU (multi core)|parallel (preemptive multitasking)|sequential (only 1 thread per block)|
5258
|CUDA 7.0+|CUDA 7.0+|NVIDIA GPUs SM 2.0+|parallel (undefined)|parallel (lock-step within warps)|
5359

5460

@@ -57,14 +63,16 @@ Supported Compilers
5763

5864
This library uses C++11 (or newer when available).
5965

60-
|Accelerator Back-end|gcc 4.9.2|gcc 5.3|gcc 6.1|clang 3.5/3.6|clang 3.7|clang 3.8|MSVC 2015|
61-
|---|---|---|---|---|---|---|---|
62-
|Serial|:white_check_mark:|:white_check_mark:|:white_check_mark:|:white_check_mark:|:white_check_mark:|:white_check_mark:|:white_check_mark:|
63-
|OpenMP 2.0+ blocks|:white_check_mark:|:white_check_mark:|:white_check_mark:|:x:|:white_check_mark:|:white_check_mark:|:white_check_mark:|
64-
|OpenMP 2.0+ threads|:white_check_mark:|:white_check_mark:|:white_check_mark:|:x:|:white_check_mark:|:white_check_mark:|:white_check_mark:|
65-
|OpenMP 4.0+ (CPU)|:white_check_mark:|:white_check_mark:|:white_check_mark:|:x:|:x:|:x:|:x:|
66-
| std::thread |:white_check_mark:|:white_check_mark:|:white_check_mark:|:white_check_mark:|:white_check_mark:|:white_check_mark:|:white_check_mark:|
67-
|CUDA 7.0+|:white_check_mark: (nvcc 7.0+)|:x:|:x:|:x:|:x:|:white_check_mark: (native)|:x:|
66+
|Accelerator Back-end|gcc 4.9.2|gcc 5.4|gcc 6.2|clang 3.5/3.6|clang 3.7|clang 3.8|clang 3.9|MSVC 2015.3/2017|
67+
|---|---|---|---|---|---|---|---|---|
68+
|Serial|:white_check_mark:|:white_check_mark:|:white_check_mark:|:white_check_mark:|:white_check_mark:|:white_check_mark:|:white_check_mark:|:white_check_mark:|
69+
|OpenMP 2.0+ blocks|:white_check_mark:|:white_check_mark:|:white_check_mark:|:x:|:white_check_mark:|:white_check_mark:|:white_check_mark:|:white_check_mark:|
70+
|OpenMP 2.0+ threads|:white_check_mark:|:white_check_mark:|:white_check_mark:|:x:|:white_check_mark:|:white_check_mark:|:white_check_mark:|:white_check_mark:|
71+
|OpenMP 4.0+ (CPU)|:white_check_mark:|:white_check_mark:|:white_check_mark:|:x:|:x:|:x:|:x:|:x:|
72+
| std::thread |:white_check_mark:|:white_check_mark:|:white_check_mark:|:white_check_mark:|:white_check_mark:|:white_check_mark:|:white_check_mark:|:white_check_mark:|
73+
| Boost.Fiber |:white_check_mark:|:white_check_mark:|:white_check_mark:|:white_check_mark:|:white_check_mark:|:white_check_mark:|:white_check_mark:|:white_check_mark:|
74+
|TBB 2.2+|:white_check_mark:|:white_check_mark:|:white_check_mark:|:white_check_mark:|:white_check_mark:|:white_check_mark:|:white_check_mark:|:white_check_mark:|
75+
|CUDA 7.0+|:white_check_mark: (nvcc 7.0+)|:white_check_mark: (nvcc 8.0+)|:x:|:x:|:x:|:white_check_mark: (native/nvcc 8.0+)|:white_check_mark: (native)|:x:|
6876

6977

7078
Dependencies
@@ -74,11 +82,17 @@ Dependencies
7482
The **alpaka** library itself just requires header-only libraries.
7583
However some of the accelerator back-end implementations require different boost libraries to be built.
7684

85+
When an accelerator back-end using *Boost.Fiber* is enabled, boost 1.62+ is required.
86+
`boost-fiber`, `boost-context` and all of its dependencies are required to be build in C++11 mode `./b2 cxxflags="-std=c++11"`.
87+
7788
When an accelerator back-end using *CUDA* is enabled, version *7.0* of the *CUDA SDK* is the minimum requirement.
78-
*NOTE*: When using *CUDA* 7.0, the *CUDA accelerator back-end* can not be enabled together with the *std::thread accelerator back-end* or the *Boost.Fiber accelerator back-end* due to bugs in the nvcc compiler.
89+
*NOTE*: When using nvcc as *CUDA* compiler, the *CUDA accelerator back-end* can not be enabled together with the *Boost.Fiber accelerator back-end* due to bugs in the nvcc compiler.
90+
*NOTE*: When using clang as a native *CUDA* compiler, the *CUDA accelerator back-end* can not be enabled together with any *OpenMP accelerator back-end* because this combination is currently unsupported.
7991

8092
When an accelerator back-end using *OpenMP* is enabled, the compiler and the platform have to support the corresponding minimum *OpenMP* version.
8193

94+
When an accelerator back-end using *TBB* is enabled, the compiler and the platform have to support the corresponding minimum *TBB* version.
95+
8296

8397
Usage
8498
-----
@@ -160,10 +174,10 @@ Authors
160174
### Maintainers and Core Developers
161175

162176
- Benjamin Worpitz (original author)
163-
- Erik Zenker
164177
- Rene Widera
165178

166179
### Former Members, Contributions and Thanks
167180

168181
- Dr. Michael Bussmann
169182
- Axel Huebl
183+
- Erik Zenker

0 commit comments

Comments
 (0)