gpu-kernel-runner
BabelStream
gpu-kernel-runner | BabelStream | |
---|---|---|
1 | 1 | |
18 | 311 | |
- | 2.9% | |
6.7 | 7.7 | |
11 days ago | 9 days ago | |
C++ | C++ | |
BSD 3-clause "New" or "Revised" License | GNU General Public License v3.0 or later |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
gpu-kernel-runner
-
How Jensen Huang's Nvidia Is Powering the A.I. Revolution
> but all the alternatives require significant redesign in languages and tools people are unfamiliar with and we can't afford that overhead
Where I work, we've made it a principle to stay OpenCL-compatible even while going with NVIDIA due to their better-performing GPUs. I even go as far as writing kernels that can be compiled as either CUDA C++ or OpenCL-C, with a bit of duct-tape adapter headers:
https://github.com/eyalroz/gpu-kernel-runner/blob/main/kerne...
https://github.com/eyalroz/gpu-kernel-runner/blob/main/kerne...
of course, if you're working with higher-level frameworks then it's more difficult, and you depend on whether or not they provided different backends. So, no thrust for AMD GPUs, for example, but pytorch and TensorFlow do let you use them.
BabelStream
-
Fortran on GPU
I wrote the Fortran version of BabelStream (https://github.com/UoB-HPC/BabelStream/pull/135) to compare all of these, which might be useful as well. There is also MiniWeather, which supports all OpenMP, OpenACC and StdPar for GPU: https://github.com/mrnorman/miniWeather/tree/main/fortran.
What are some alternatives?
ArrayFire - ArrayFire: a general purpose GPU library.
nwchem-tce-triples-kernels - NWChem TCE CCSD(T) loop-driven kernels for performance optimization experiments
ParallelReductionsBenchmark - Thrust, CUB, TBB, AVX2, CUDA, OpenCL, OpenMP, SyCL - all it takes to sum a lot of numbers fast!
bedrock-clump - A GPU accelerated program to search the minecraft world for the largest connected clump of layer 5 bedrock
miniWeather - A parallel programming training mini app simulating weather-like flows
alpaka - Abstraction Library for Parallel Kernel Acceleration :llama:
Kernels - This is a set of simple programs that can be used to explore the features of a parallel platform.
mixbench - A GPU benchmark tool for evaluating GPUs and CPUs on mixed operational intensity kernels (CUDA, OpenCL, HIP, SYCL, OpenMP)