Kernel APIs
Kernel APIs are a set of functions that can be used inside the kernels. Some APIs are shared across all kernel types, while others are specific to certain kernel types (e.g., compute kernels). They are the primitives that enable the kernel to perform its operations, such as data movement, computation, and synchronization.
Common APIs
Data Movement
-
Data Movement APIs
- noc_async_read
- noc_async_read_set_state
- noc_async_read_with_state
- noc_async_read_one_packet
- noc_async_read_one_packet_set_state
- noc_async_read_one_packet_with_state
- noc_async_read_page
- noc_async_read_shard
- noc_async_write
- noc_async_write_multicast
- noc_async_write_multicast_loopback_src
- noc_async_write_one_packet
- noc_async_write_one_packet_set_state
- noc_async_write_one_packet_with_state
- noc_async_write_multicast_one_packet
- noc_async_write_page
- noc_async_write_shard
- noc_inline_dw_write
- noc_inline_dw_write_set_state
- noc_inline_dw_write_with_state
- noc_async_read_barrier
- noc_async_write_barrier
- noc_async_atomic_barrier
- noc_async_full_barrier
- noc_async_read_barrier_with_trid
- noc_async_write_barrier_with_trid
- noc_async_writes_flushed
- noc_async_posted_writes_flushed
- get_semaphore
- noc_semaphore_set
- noc_semaphore_set_remote
- noc_semaphore_set_multicast
- noc_semaphore_set_multicast_loopback_src
- noc_semaphore_inc
- noc_semaphore_wait
- noc_semaphore_wait_min
- get_noc_addr
- get_noc_addr_from_bank_id
- get_noc_multicast_addr
- Ordering (NOC, CMD_BUF, VC)
Compute
-
Compute APIs
- Synchronization
-
Compute
- Initialization
- Compute (FPU/matrix engine)
-
Compute (SFPU/vector engine)
- Basic arithmetic operations
- Integer operations
- Exponential and logarithmic functions
-
Comparison and logical operations
- unary_eq_tile
- unary_ne_tile
- unary_gt_tile
- unary_ge_tile
- unary_lt_tile
- unary_le_tile
- unary_max_tile
- unary_min_tile
- max_tile
- binary_max_tile
- binary_min_tile
- ltz_tile
- lez_tile
- gtz_tile
- gez_tile
- eqz_tile
- nez_tile
- logical_not_unary_tile
- isinf_tile
- isposinf_tile
- isneginf_tile
- isfinite_tile
- isnan_tile
- heaviside_tile
- Bitwise operations
- Rounding and ceiling functions
- Hyperbolic functions
- Special mathematical functions
- Initialization and utilities
- Trigonometric functions
- Activation functions
- Data manipulation and processing
- Quantization operations
- Packing APIs
- Low Level Kernels