Programmer’s guide#
This document provides insight into the library source code organization, design implementation details, helpful information for new development, and testing and benchmarking details.
Library source code organization#
The hipTensor code is split into four major parts:
The
librarydirectory contains the library source code.The
samplesdirectory contains real-world use-cases of the hipTensor API.The
testdirectory contains validation tests for hipTensor API.Infrastructure
library directory#
The library directory contains the following include and source files:
library/include/hiptensor/: C++ include files for the hipTensor API. These files also contain Doxygen comments that document the API.library/include/hiptensor/internal: Include files for utility code and generate tensor utility.library/src/: Source files for Logger, device, and performance functions.library/src/contraction/: Source files for core composable kernel header functions and contraction initialization functions.library/src/contraction/device: Source files for hipTensor bilinear and scale instance functions.
samples directory#
The samples directory contains the sample codes for the following use cases:
01_contraction/simple_bilinear_contraction_f32.cpp: For calling bilinear contraction forfp32input, output and compute types01_contraction/simple_scale_contraction_f32.cpp: For calling scale contraction forfp32input, output and compute types
test directory#
The test directory contains the test codes for testing the following functionalities:
00_unit/logger: Logger API functions of hipTensor01_contraction/bilinear_contraction_f32: Bilinear contraction functionality and log metrics for F32 types01_contraction/bilinear_contraction_f64: Bilinear contraction functionality and log metrics for F64 types01_contraction/scale_contraction_f32: Scale contraction functionality and log metrics for F32 types01_contraction/scale_contraction_f64: Scale contraction functionality and log metrics for F64 types
Infrastructure#
CMake is used to build and package hipTensor. There are
CMakeLists.txtfiles throughout the code.Doxygen/Breathe/Sphinx/ReadTheDocsare used to produce documentation. The API documentation is generated using:Doxygen comments in include files in the directory
library/includefiles in the directory
docs/
Jenkins is used to automate Continuous Integration (CI) testing.
clang-formatis used to format C++ code.