rocBLAS
AdaptiveCpp
rocBLAS | AdaptiveCpp | |
---|---|---|
6 | 19 | |
317 | 1,042 | |
2.8% | 2.4% | |
9.7 | 9.7 | |
5 days ago | 4 days ago | |
C++ | C++ | |
GNU General Public License v3.0 or later | BSD 2-clause "Simplified" License |
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.
rocBLAS
-
Nvidia DGX GH200: The First 100 Terabyte GPU Memory System
The same is also true for https://github.com/ROCmSoftwarePlatform/rocBLAS and https://github.com/ROCmSoftwarePlatform/hipBLASLt although the build stack, distribution— leaves a lot to be desired, and otherwise quite unstable.
-
Whisper.cpp v1.4.0
Full circle eh. I wonder how well it compares to just trying to use the actual Whisper models on a variety of existing Gpu capable bigger frameworks.
I don't know much practically about how hard it would be to take the Whisper PyTorch (1 or 2?) trained models & to make good use of them elsewhere. I expect Whisper.cpp probably better caters to users, is more readily consumable.
Fwiw, Whisper.cpp uses Nvidia's cuBLAS. There does appear to be an AMD rocm port. https://github.com/ROCmSoftwarePlatform/rocBLAS
-
which CPU to choose?
It's not what you asked, but I felt I should point out that rocBLAS is no longer maintained for gfx803 (the architecture of the RX 570) and PyTorch depends on rocBLAS. PyTorch will work at least to some extent, but there are known bugs that may never be fixed. I've been trying to change this, but that's how things are right now.
-
Trying to get Pytorch ROCm to work on Ubuntu 20.04 with Fiji cards
The last release that officially supported gfx803 was ROCm 3.5. All testing on that hardware ceased shortly after said release, and the code paths for that architecture have been unmaintained for nearly two years. For a specific example of a problem you may encounter, see: https://github.com/ROCmSoftwarePlatform/rocBLAS/issues/1218
- Compute Ecosystem of AMD GPUs
-
PyTorch 1.8 adds AMD ROCm support
Although the code is still there, support for (slightly) older devices are already suffering from lack of maintainence and bugs. For instance there's a bug causing gfx803 devices to produce wrong outputs starting from mid-2020, and I'm pretty sure they're never gonna fix it.
AdaptiveCpp
-
What Every Developer Should Know About GPU Computing
Sapphire Rapids is a CPU.
AMD's primary focus for a GPU software ecosystem these days seems to be implementing CUDA with s/cuda/hip, so AMD directly supports and encourages running GPU software written in CUDA on AMD GPUs.
The only implementation for sycl on AMD GPUs that I can find is a hobby project that apparently is not allowed to use either the 'hip' or 'sycl' names. https://github.com/AdaptiveCpp/AdaptiveCpp
-
AMD May Get Across the CUDA Moat
Not natively, but AdaptiveCpp (previously hiSycl, then OpenSycl) has a single source single compiler pass, where they basically store LLVM IR as an intermediate representation.
https://github.com/AdaptiveCpp/AdaptiveCpp/blob/develop/doc/...
Performance penalty was within ew precents, at least according to the paper (figure 9 and 10)
-
Offloading standard C++ PSTL to Intel, NVIDIA and AMD GPUs with AdaptiveCpp
AdaptiveCpp (formerly known as hipSYCL) is an independent, open source, clang-based heterogeneous C++ compiler project. I thought some of you might be interested in knowing that we recently added support to offload standard C++ parallel STL algorithms to GPUs from all major vendors. E.g.:
-
AMD's HIPRT Working Its Way To Blender With ~25% Faster Rendering
In fact SYCL was initially called hipSYCL because it is based on AMD's ROCm/HIP. AMD had hipSYCL code running on the Frontier supercomputer four years ago at least and continues to support it.
-
hipSYCL can now generate a binary that runs on any Intel/NVIDIA/AMD GPU - in a single compiler pass. It is now the first single-pass SYCL compiler, and the first with unified code representation across backends.
Apple Silicon support through Metal is something that is actively discussed in hipSYCL. See https://github.com/illuhad/hipSYCL/issues/864 https://github.com/illuhad/hipSYCL/issues/460 (loooong discussion)
-
Bringing Nvidia® and AMD support to oneAPI
But really, the DPC++ part of oneAPI (which is many APIs) is just SYCL + extensions, and there are several other SYCL implementations which have already featured CUDA and Hip (AMD) support for a long time. The most popular and widely-used is hipSYCL, which we've been using in an HPC context on NV hardware for over 4 years now.
-
Intel oneAPI 2023 Released - AMD & NVIDIA Plugins Available
Unfortunately, the AMD and Nvidia plugins are proprietary. AMD users are probably better served with hipSYCL, if they somehow find an application using SYCL...
-
There is framework for everything.
Also, you might want to take a look at an implementation like hipSYCL :)
-
The Next Platform: "Intel Takes The SYCL To Nvidia's CUDA With Migration Tool"
Yup. SYCL is the future: https://github.com/illuhad/hipSYCL
-
Phoronix: "Intel's Vulkan Linux Driver Adds Experimental Mesh Shader Support For DG2/Alchemist"
ROCm is completely independent from these. It's a compute stack containing an OpenCL implementation for Radeon GPUs, plus a CUDA-like language called HIP which can be compiled to either device code for Radeon GPUs or to PTX to work with Nvidia GPUs. However, some researchers also created hipSYCL that allows SYCL to run atop HIP; you can think of it like DXVK - the program contains the DirectX/SYCL API, and DXVK/hipSYCL converts it to Vulkan/HIP (with one difference - DXVK does the conversion at runtime, while hipSYCL does it at compile time).
What are some alternatives?
kokkos-kernels - Kokkos C++ Performance Portability Programming Ecosystem: Math Kernels - Provides BLAS, Sparse BLAS and Graph Kernels
ROCm - AMD ROCm™ Software - GitHub Home [Moved to: https://github.com/ROCm/ROCm]
HIP-CPU - An implementation of HIP that works on CPUs, across OSes.
triSYCL - Generic system-wide modern C++ for heterogeneous platforms with SYCL from Khronos Group
Pytorch - Tensors and Dynamic neural networks in Python with strong GPU acceleration
HIP - HIP: C++ Heterogeneous-Compute Interface for Portability
hipBLASLt - hipBLASLt is a library that provides general matrix-matrix operations with a flexible API and extends functionalities beyond a traditional BLAS library
cuda-api-wrappers - Thin C++-flavored header-only wrappers for core CUDA APIs: Runtime, Driver, NVRTC, NVTX.
stdgpu - stdgpu: Efficient STL-like Data Structures on the GPU
cuda_memtest - Fork of CUDA GPU memtest :eyeglasses: