A header-only HIP library with a slew of user-focused features for GPU test development
Explore the docs »
Report a Bug
·
Request a Feature
Embers is a header-only HIP library with a slew of features enhancing heterogeneous programming. These features are broken down into the following blocks:
- amdgpu
- Functions providing GPU family based on PCI Device ID
- Functionality to detect and report HW blocks running this code (SEs, CUs, waves)
- crypto
- Implementations of keccak, cubehash, and ethash
- helpers
- Templated format agnostic numeric equality checkers
- Templated bit helpers
- HIP kernels for memcpy, memset, and memcmp
- Xlator class for translating system VAs to PAs
- memory
- Heterogeneous unique_ptr with host side ownership
- primitives
- Heterogeneous multi-device synchronization primitives
- barriers
- monotonic counters
- locks
- Heterogeneous multi-device synchronization primitives
- rand
- Multiple pseudorandom number generator implementations
- Fill buffer rand heterogeneous helper
- Cmake
- Compiler supporting HIP and C++20 (LLVM is a good choice)
sudo apt install cmake
git clone --recursive https://github.com/ROCm/embers
cd embers && mkdir -p build && cd build
CXX=<path_to_hipcc> cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH=<path_to_rocm> ..
make -j
Either make install
or make -j
package and install the built packages
See the unit tests
Any contributions you make are greatly appreciated.
If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -m 'Add some AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
See LICENSE.txt
for more information.
Project Link: https://github.com/ROCm/embers