Programmer’s Guide#
Library Source Code Organization#
The hipTensor code is split into four major parts:
The library directory contains all source code for the library.
The samples directory contains real-world use-cases of the hipTensor API.
The test directory contains all validation tests of hipTensor API.
Infrastructure
The library directory#
library/include/hiptensor/#
Contains C++ include files for the hipTensor API. These files also contain Doxygen comments that document the API.
library/include/hiptensor/internal#
Internal include files for:
Utility Code
Generate Tensor Utility
library/src/#
Contains logger, device and performance functions.
library/src/contraction/#
Contains hipTensor core composable kernel header functions and contraction initialization functions.
library/src/contraction/device#
Contains hipTensor Bilinear and Scale instance functions
The samples directory#
01_contraction/simple_bilinear_contraction_f32.cpp#
sample code for calling bilinear contraction for fp32 input, output and compute types
01_contraction/simple_scale_contraction_f32.cpp#
sample code for calling scale contraction for fp32 input, output and compute types
The test directory#
00_unit/logger#
Test code for testing logger API Functions of hipTensor
01_contraction/bilinear_contraction_f32#
Test code for testing the bilinear contraction functionality and log metrics for F32 types.
01_contraction/bilinear_contraction_f64#
Test code for testing the bilinear contraction functionality and log metrics for F64 types.
01_contraction/scale_contraction_f32#
Test code for testing the scale contraction functionality and log metrics for F32 types.
01_contraction/scale_contraction_f64#
Test code for testing the scale contraction functionality and log metrics for F64 types.
Infrastructure#
CMake is used to build and package hipTensor. 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/
Jenkins is used to automate Continuous Integration testing.
clang-format is used to format C++ code.