File: library-source-code-organization.rst

package info (click to toggle)
hipblas 6.4.4-1
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 26,548 kB
  • sloc: cpp: 209,856; f90: 49,800; python: 4,680; ansic: 1,141; sh: 799; makefile: 50; xml: 23
file content (88 lines) | stat: -rw-r--r-- 2,574 bytes parent folder | download | duplicates (2)
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.