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.