This document is relevant for: Inf1, Inf2, Trn1, Trn2, Trn3
neuron_driver_shared.h#
Shared definitions between Neuron driver and runtime.
Source: src/libnrt/include/ndl/neuron_driver_shared.h
Enumerations#
neuron_driver_feature_flag#
enum neuron_driver_feature_flag {
NEURON_DRIVER_FEATURE_DMABUF = 1ull << 0,
NEURON_DRIVER_FEATURE_ASYNC_DMA = 1ull << 1,
NEURON_DRIVER_FEATURE_BATCH_DMAQ_INIT = 1ull << 2,
NEURON_DRIVER_FEATURE_BIG_CORE_MAPS = 1ull << 3,
NEURON_DRIVER_FEATURE_MEM_ALLOC_TYPE = 1ull << 4,
NEURON_DRIVER_FEATURE_HBM_SCRUB = 1ull << 5,
NEURON_DRIVER_FEATURE_MEM_ALLOC64 = 1ull << 6,
NEURON_DRIVER_FEATURE_CONTIGUOUS_SCRATCHPAD = 1ull << 7,
NEURON_DRIVER_FEATURE_ZEROCOPY = 1ull << 8,
};
Feature flags for driver capabilities.
Source: neuron_driver_shared.h:11
neuron_pod_ctrl_req#
enum neuron_pod_ctrl_req {
NEURON_NPE_POD_CTRL_REQ_POD = 0,
NEURON_NPE_POD_CTRL_REQ_SINGLE_NODE = 1,
NEURON_NPE_POD_CTRL_REQ_KILL = 2,
NEURON_NPE_POD_CTRL_SET_MODE = 3,
};
Pod control request types.
Source: neuron_driver_shared.h:40
neuron_ultraserver_mode#
enum neuron_ultraserver_mode {
NEURON_ULTRASERVER_MODE_UNSET = 0,
NEURON_ULTRASERVER_MODE_X4 = 1,
NEURON_ULTRASERVER_MODE_X2H = 2,
NEURON_ULTRASERVER_MODE_X2V = 3,
NEURON_ULTRASERVER_MODE_X1 = 4,
};
Ultraserver configuration modes.
Source: neuron_driver_shared.h:47
neuron_dma_queue_type#
enum neuron_dma_queue_type {
NEURON_DMA_QUEUE_TYPE_TX = 0,
NEURON_DMA_QUEUE_TYPE_RX,
NEURON_DMA_QUEUE_TYPE_COMPLETION,
};
DMA queue types.
Source: neuron_driver_shared.h:63
NQ_DEVICE_TYPE#
enum NQ_DEVICE_TYPE {
NQ_DEVICE_TYPE_NEURON_CORE = 0,
NQ_DEVICE_TYPE_TOPSP,
NQ_DEVICE_TYPE_MAX
};
Notification queue device types.
Source: neuron_driver_shared.h:115
NQ_TYPE#
enum NQ_TYPE {
NQ_TYPE_TRACE = 0,
NQ_TYPE_NOTIFY,
NQ_TYPE_EVENT,
NQ_TYPE_ERROR,
NQ_TYPE_TRACE_DMA,
NQ_TYPE_THROTTLE,
NQ_TYPE_MAX
};
Notification queue types.
Source: neuron_driver_shared.h:123
mem_alloc_category_t#
typedef enum {
NEURON_MEMALLOC_TYPE_UNKNOWN_HOST,
NEURON_MEMALLOC_TYPE_CODE_HOST,
NEURON_MEMALLOC_TYPE_TENSORS_HOST,
NEURON_MEMALLOC_TYPE_CONSTANTS_HOST,
NEURON_MEMALLOC_TYPE_MISC_HOST,
NEURON_MEMALLOC_TYPE_NCDEV_HOST,
NEURON_MEMALLOC_TYPE_NOTIFICATION_HOST,
NEURON_MEMALLOC_TYPE_UNKNOWN_DEVICE,
NEURON_MEMALLOC_TYPE_CODE_DEVICE,
NEURON_MEMALLOC_TYPE_TENSORS_DEVICE,
NEURON_MEMALLOC_TYPE_CONSTANTS_DEVICE,
NEURON_MEMALLOC_TYPE_SCRATCHPAD_DEVICE,
NEURON_MEMALLOC_TYPE_MISC_DEVICE,
NEURON_MEMALLOC_TYPE_NCDEV_DEVICE,
NEURON_MEMALLOC_TYPE_COLLECTIVES_DEVICE,
NEURON_MEMALLOC_TYPE_SCRATCHPAD_NONSHARED_DEVICE,
NEURON_MEMALLOC_TYPE_NOTIFICATION_DEVICE,
NEURON_MEMALLOC_TYPE_DMA_RINGS_HOST,
NEURON_MEMALLOC_TYPE_DMA_RINGS_DEVICE,
NEURON_MEMALLOC_TYPE_CONTIGUOUS_SCRATCHPAD_DEVICE,
NEURON_MEMALLOC_TYPE_MAX
} mem_alloc_category_t;
Memory allocation categories for sysfs counters.
Source: neuron_driver_shared.h:234
Structures#
neuron_dma_eng_state#
struct neuron_dma_eng_state {
__u32 revision_id;
__u32 max_queues;
__u32 num_queues;
__u32 tx_state;
__u32 rx_state;
};
DMA engine state information.
Source: neuron_driver_shared.h:76
neuron_dma_queue_state#
struct neuron_dma_queue_state {
__u32 hw_status;
__u32 sw_status;
__u64 base_addr;
__u32 length;
__u32 head_pointer;
__u32 tail_pointer;
__u64 completion_base_addr;
__u32 completion_head;
};
DMA queue state information.
Source: neuron_driver_shared.h:84
neuron_uuid#
struct neuron_uuid {
__u8 value[32];
};
UUID structure for model identification.
Source: neuron_driver_shared.h:163
neuron_app_info#
struct neuron_app_info {
__s32 pid;
__u8 nc_lock_map;
struct neuron_uuid uuid_data[APP_INFO_MAX_MODELS_PER_DEVICE];
size_t host_mem_size;
size_t device_mem_size;
};
Application information including PID, locked neuron cores, and memory usage.
Source: neuron_driver_shared.h:175
neuron_memcpy_batch_t#
typedef struct neuron_memcpy_batch {
__u64 mem_handle;
__u64 mem_handle_offset;
const nrt_tensor_batch_op_t *ops_ptr;
__u32 num_ops;
__u16 bar4_wr_threshold;
__u16 flags;
void *context;
} neuron_memcpy_batch_t;
A batch of copy operations for efficient data transfer.
Source: neuron_driver_shared.h:220
nds_header_t#
typedef struct nds_header {
char signature[4];
int version;
} nds_header_t;
Neuron Datastore header structure.
Source: neuron_driver_shared.h:330
Constants#
NEURON_DMA_H2T_DEFAULT_QID#
#define NEURON_DMA_H2T_DEFAULT_QID (-1)
H2T DMA Default Queue id.
Source: neuron_driver_shared.h:108
NEURON_MAX_PROCESS_PER_DEVICE#
#define NEURON_MAX_PROCESS_PER_DEVICE 16
Maximum processes per device.
Source: neuron_driver_shared.h:167
NDS_MAX_NEURONCORE_COUNT#
#define NDS_MAX_NEURONCORE_COUNT (4)
Maximum neuron core count for NDS.
Source: neuron_driver_shared.h:323
This document is relevant for: Inf1, Inf2, Trn1, Trn2, Trn3