https://github.com/cms-patatrack/portability

Test programs for different "performance portability" frameworks and libraries

https://github.com/cms-patatrack/portability

Science Score: 10.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
  • .zenodo.json file
  • DOI references
  • Academic publication links
  • Committers with academic emails
    1 of 1 committers (100.0%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (8.5%) to scientific vocabulary
Last synced: 10 months ago · JSON representation

Repository

Test programs for different "performance portability" frameworks and libraries

Basic Info
  • Host: GitHub
  • Owner: cms-patatrack
  • Language: C++
  • Default Branch: master
  • Homepage:
  • Size: 18.6 KB
Statistics
  • Stars: 0
  • Watchers: 1
  • Forks: 2
  • Open Issues: 0
  • Releases: 0
Created about 7 years ago · Last pushed over 6 years ago

https://github.com/cms-patatrack/portability/blob/master/

# A comparison of different heterogeneous frameworks

The purpose of these test programs is to experiment with various heterogeneous frameworks and "performance portability" approaches.

## Current implementations

| Test          | CPU (serial)  | CUDA  | Alpaka/Cupla  | SYCL  |
|---------------|---------------|-------|---------------|-------|
| `vector_add`  | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: :heavy_check_mark: :heavy_check_mark: :heavy_check_mark: | :heavy_check_mark: :heavy_check_mark: :heavy_check_mark: |
| `shared_mem`  | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: :heavy_check_mark: :heavy_check_mark: :heavy_check_mark: | :heavy_check_mark: :heavy_check_mark: :heavy_check_mark: |

Support for **Alpaka/Cupla** is split in
  - CPU serial
  - CPU paraller, using OpenMP
  - CPU paraller, using TBB
  - GPU parallel, using CUDA

Support for **SYCL** is split in
  - CPU (unspecified)
  - generic OpenCL
  - NVIDIA PTX


### CUDA

These programs require a recent CUDA version (`nvcc` supporting C++14 and `--expt-relaxed-constexpr`) and a machine with GPU.


### Alpaka/Cupla

Alpaka/Cupla support different backends; so far it has been tested with serial, TBB and OpenMP backends for the CPU, and the CUDA
backend for NVIDIA GPUs. The latter requires CUDA 9.2 through 10.1, and has been tested with gcc 7.x and gcc 8.x.

Rather than using the advertised `CMake`-based approach, one can use Cupla as header-only library:
```
# choose a base directory for Alpaka and Cupla
BASE=/opt/alpaka
mkdir -p $BASE
cd $BASE

# download the development version of Alpaka
git clone -b develop git@github.com:ComputationalRadiationPhysics/alpaka.git

# download the development version of Capla, and set up sparse checkout to remove the embedded Alpaka
git clone -b dev     git@github.com:ComputationalRadiationPhysics/cupla.git
cd cupla
git config core.sparseCheckout true
echo -e '/*\n!/alpaka/' > .git/info/sparse-checkout
git read-tree -mu HEAD
```

Note: these instructions were accurate as of October 15th, 2019.

See the [`vector_add/Makefile`](vector_add/Makefile) for an example.
If you use a different `BASE` folder, updated the `Makefile`s accordingly.


### SYCL

These programs were tested with CodePlay's [ComputeCpp Community Edition](https://developer.codeplay.com/products/computecpp/ce/home/),
version 1.1.4 .


## Other projects

Other projects with similar goals:
  - BabelStream memory transfer benchmark: https://uob-hpc.github.io/BabelStream/
  - Parallel Research Tools: https://github.com/ParRes/Kernels
  - DoE portability study: https://performanceportability.org/

Owner

  • Name: Patatrack
  • Login: cms-patatrack
  • Kind: organization
  • Email: cms-patatrack@cern.ch
  • Location: CERN, Geneva, Switzerland

GitHub Events

Total
Last Year

Committers

Last synced: about 1 year ago

All Time
  • Total Commits: 6
  • Total Committers: 1
  • Avg Commits per committer: 6.0
  • Development Distribution Score (DDS): 0.0
Past Year
  • Commits: 0
  • Committers: 0
  • Avg Commits per committer: 0.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
Andrea Bocci a****i@c****h 6
Committer Domains (Top 20 + Academic)
cern.ch: 1

Issues and Pull Requests

Last synced: about 1 year ago

All Time
  • Total issues: 0
  • Total pull requests: 1
  • Average time to close issues: N/A
  • Average time to close pull requests: over 1 year
  • Total issue authors: 0
  • Total pull request authors: 1
  • Average comments per issue: 0
  • Average comments per pull request: 0.0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 0
  • Pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 0
  • Pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
Pull Request Authors
  • darcato (1)
Top Labels
Issue Labels
Pull Request Labels