TPC Programming Language
On this Page
TPC Programming Language¶
TPC-C¶
The TPC core can be programmed using a derivative of C language called TPC-C. TPC-C programming language is used to author TPC programs (AKA kernels) that are executed on TPC device(s). The TPC programming language is based on the ISO/IEC 9899:1999 C language specification with TPC specific extensions and restrictions. Please refer to the ISO/IEC 9899:1999 specification for a detailed description of the language grammar. TPC-C is a derivative of C99 with added vector data types to enable easy utilization of processor-unique SIMD capabilities.
It has many dedicated features to accelerate DNN ops such as:
Tensor-based memory accesses
Accelerations for special functions
Random number generation
Multiple data types similar to the MME
TPC Program Components¶
A TPC program consists of two parts:
TPC code
Host glue code
TPC Code¶
TPC code is the ISA that the TPC processor executes. It contains the kernel implementation.
Host Glue Code¶
Host glue code is executed on the host machine serviced by the Intel Gaudi DNN SoC, and holds specifications regarding how the program input/outputs can be dynamically partitioned between the numerous TPC processors in the Gaudi device.