KFD 队列的基本概念
queue 是用户空间与 GPU 之间的主要通信桥梁。每个 queue 代表一条命令流(如 kernel launch、memory copy 等),由用户空间分配和管理 ring buffer,内核负责资源分配、调度、异常处理等。KFD 支持多种类型的队列,包括计算队列(compute)、DMA 队列(SDMA)、高优先级队列(HIQ)、调试队列(DIQ)等。
核心数据结构
1. struct queue_properties
queue_properties 是描述单个队列所有关键属性的结构体,定义于 kfd_priv.h。其主要字段和功能如下:
struct queue_properties {
enum kfd_queue_type type;
enum kfd_queue_format format;
unsigned int queue_id;
uint64_t queue_address;
uint64_t queue_size;
uint32_t priority;
uint32_t queue_percent;
void __user *read_ptr;
void __user *write_ptr;
void __iomem *doorbell_ptr;
uint32_t doorbell_off;
bool is_interop;
bool is_evicted;
bool is_suspended;
bool is_being_destroyed;
bool is_a
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



