Introduction
The next chapters describe how to create programs running on DPUs, interacting with host applications.
It includes:
Using the functionality provided by the Runtime Library in the DPU program
Using the Host API that allows host applications to start and control the execution of DPUs
Those two components are tightly correlated, offering different categories of services:
Tasklet management and synchronization: how to define threads, how they operate and interact
Memory management: how to access the different memories within a DPU
Communication with host applications: how to share data with the host
Standard library functions: how to use the C standard library
Exceptions: understanding the SDK exception model
Controlling the execution of DPUs from host applications: how to control the DPU from the host side
Logging: how to log messages from the DPU
Performance Counters: how to access hardware performance counter
DPU chip characteristics
UPMEM curently provides two different models of DPU, named v1A and v1B.
The major differences between these two are as follows:
v1A |
v1B |
|
|---|---|---|
Nominal frequency |
350 MHz |
400 MHz |
Instruction Memory (IRAM) [1] |
<= 4096 instructions |
<= 3968 instructions |
Working memory (WRAM) [1] |
<= 65536 bytes |
<= 63488 bytes |
Tasklets [2] |
<= 24 |
<= 16 |
Mutexes |
<= 56 |
<= 64 |