Library Source Code Organization#
The hipBLAS code is split into two major parts:
The library directory contains all source code for the library.
The clients directory contains all test code and code to build clients.
Infrastructure
The library directory#
library/include#
Contains C98 include files for the external API. These files also contain Doxygen comments that document the API.
library/src/amd_detail#
Implementation of hipBLAS interface compatible with rocBLAS APIs.
library/src/nvidia_detail#
Implementation of hipBLAS interface compatible with cuBLAS-v2 APIs.
library/src/include#
Internal include files for:
Converting C++ exceptions to hipBLAS status.
The clients directory#
clients/gtest#
Code for client hipblas-test. This client is used to test hipBLAS.
clients/benchmarks#
Code for client hipblas-benchmark. This client is used to benchmark hipBLAS functions.
clients/include#
Code for testing and benchmarking individual hipBLAS functions, and utility code for testing.
clients/common#
Common code used by both hipblas-benchmark and hipblas-test.
clients/samples#
Sample code for calling hipBLAS functions.
Infrastructure#
CMake is used to build and package hipBLAS. There are CMakeLists.txt files throughout the code.
Doxygen/Breathe/Sphinx/ReadTheDocs are used to produce documentation. Content for the documentation is from:
Doxygen comments in include files in the directory library/include
files in the directory docs/source.
Jenkins is used to automate Continuous Integration testing.
clang-format is used to format C++ code.