/* * struct gaudi_hw_sob_group - H/W SOB group info. * @hdev: habanalabs device structure. * @kref: refcount of this SOB group. group will reset once refcount is zero. * @base_sob_id: base sob id of this SOB group. * @queue_id: id of the queue that waits on this sob group
*/ struct gaudi_hw_sob_group { struct hl_device *hdev; struct kref kref;
u32 base_sob_id;
u32 queue_id;
};
#define NUM_SOB_GROUPS (HL_RSVD_SOBS * QMAN_STREAMS) /** * struct gaudi_collective_properties - * holds all SOB groups and queues info reserved for the collective * @hw_sob_group: H/W SOB groups. * @next_sob_group_val: the next value to use for the currently used SOB group. * @curr_sob_group_idx: the index of the currently used SOB group. * @mstr_sob_mask: pre-defined masks for collective master monitors
*/ struct gaudi_collective_properties { struct gaudi_hw_sob_group hw_sob_group[NUM_SOB_GROUPS];
u16 next_sob_group_val[QMAN_STREAMS];
u8 curr_sob_group_idx[QMAN_STREAMS];
u8 mstr_sob_mask[HL_COLLECTIVE_RSVD_MSTR_MONS];
};
/** * struct gaudi_internal_qman_info - Internal QMAN information. * @pq_kernel_addr: Kernel address of the PQ memory area in the host. * @pq_dma_addr: DMA address of the PQ memory area in the host. * @pq_size: Size of allocated host memory for PQ.
*/ struct gaudi_internal_qman_info { void *pq_kernel_addr;
dma_addr_t pq_dma_addr;
size_t pq_size;
};
/** * struct gaudi_device - ASIC specific manage structure. * @cpucp_info_get: get information on device from CPU-CP * @hw_queues_lock: protects the H/W queues from concurrent access. * @internal_qmans: Internal QMANs information. The array size is larger than * the actual number of internal queues because they are not in * consecutive order. * @hbm_bar_cur_addr: current address of HBM PCI bar. * @events: array that holds all event id's * @events_stat: array that holds histogram of all received events. * @events_stat_aggregate: same as events_stat but doesn't get cleared on reset * @hw_cap_initialized: This field contains a bit per H/W engine. When that * engine is initialized, that bit is set by the driver to * signal we can use this engine in later code paths. * Each bit is cleared upon reset of its corresponding H/W * engine. * @mmu_cache_inv_pi: PI for MMU cache invalidation flow. The H/W expects an * 8-bit value so use u8.
*/ struct gaudi_device { int (*cpucp_info_get)(struct hl_device *hdev);
/* TODO: remove hw_queues_lock after moving to scheduler code */
spinlock_t hw_queues_lock;
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.