1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88
|
.. meta::
:description: Documentation of the hipBLAS library source code organization
:keywords: hipBLAS, rocBLAS, BLAS, ROCm, API, Linear Algebra, documentation, library, organization
.. _hipblas-orga:
**********************************
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 :ref:`hipblas-clients`.
clients/benchmarks
^^^^^^^^^^^^^^^^^^^^^^^^^
Code for the hipblas-bench client. This client is used to benchmark hipBLAS functions.
For more information, see :ref:`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.
|