This page contains proposed changes for a future release of ROCm. Read the latest Linux release of ROCm documentation for your production environments.

Library source code organization#

The hipBLAS code is split into the following sections:

  • The library directory, which contains all source code for the library

  • The clients directory, which contains all test code and the code to build clients

  • Infrastructure

The library directory#

The library directory includes the following subdirectories.

library/include#

Contains C98 include files for the external API. These files include Doxygen comments that document the API.

library/src/amd_detail#

Implementation of the hipBLAS interface, which is compatible with the rocBLAS APIs.

library/src/nvidia_detail#

Implementation of the hipBLAS interface, which is compatible with the cuBLAS-v2 APIs.

library/src/include#

Internal include files for converting C++ exceptions to hipBLAS statuses.

The clients directory#

The clients directory includes the following subdirectories.

clients/gtest#

Code for the hipblas-test client. This client is used to test hipBLAS. For more information, see Using hipBLAS clients.

clients/benchmarks#

Code for the hipblas-bench client. This client is used to benchmark hipBLAS functions. For more information, see Using hipBLAS clients.

clients/include#

Code for testing and benchmarking individual hipBLAS functions and utility code for testing.

clients/common#

Common code used by both hipblas-bench and hipblas-test.

clients/samples#

Sample code demonstrating how to call hipBLAS functions.

Infrastructure#

The following utilities support the hipBLAS infrastructure:

  • CMake is used to build and package hipBLAS. There are CMakeLists.txt files throughout the code.

  • Doxygen, Breathe, Sphinx, and ReadTheDocs generate the documentation. The following sources supply content for the documentation:

    • Doxygen comments in the include files in the library/include directory

    • Files in the docs directory

  • Jenkins is used to automate continuous integration (CI) testing.

  • clang-format is used to format C++ code.