Device 接口
initialize 【optional】
接口定义
C_Status (*initialize)()
接口说明
初始化硬件后端,例如初始化硬件 Runtime 或者 Driver 。在注册硬件时,最先被调用,不实现该接口则不调用。
finalize 【optional】
接口定义
C_Status (*finalize)()
接口说明
去初始化硬件后端,例如硬件 Runtime 或者 Driver 退出时去初始化。在退出时最后被调用,不实现该接口则不调用。
init_device 【optional】
接口定义
C_Status (*init_device)(const C_Device device)
接口说明
初始化指定硬件设备,会在插件注册时对所有可用设备进行初始化,不实现该接口则不调用。该接口在 initialize 之后被调用。
参数
device - 需要初始化的设备。
deinit_device 【optional】
接口定义
C_Status (*deinit_device)(const C_Device device)
接口说明
去初始化指定硬件设备,释放所有该设备分配的资源,在退出时调用,不实现该接口则不调用。该接口在 finalize 之前被调用。
参数
device - 需要去初始化的设备。
接口定义
set_device 【required】
C_Status (*set_device)(const C_Device device)
接口说明
设置当前使用的硬件设备,后续的任务执行在该设备上。
参数
device - 需要设置的设备。
get_device 【required】
接口定义
C_Status (*get_device)(const C_Device device)
接口说明
获取当前使用的硬件设备。
参数
device - 存储当前使用的设备。
synchronize_device 【required】
接口定义
C_Status (*synchronize_device)(const C_Device device)
接口说明
同步设备,等待指定设备上所有任务完成。
参数
device - 需要同步的设备。
get_device_count 【required】
接口定义
C_Status (*get_device_count)(size_t* count)
接口说明
查询可用设备数量。
参数
count - 存储可用设备数量。
get_device_list 【required】
接口定义
C_Status (*get_device_list)(size_t* devices)
接口说明
获取当前可用所有设备的设备号列表。
参数
devices - 存储可用设备号。
get_compute_capability 【required】
接口定义
C_Status (*get_compute_capability)(const C_Device device, size_t* compute_capability)
接口说明
获取设备算力。
参数
device - 需要获取算力的设备。 compute_capability - 存储设备算力。
get_runtime_version 【required】
接口定义
C_Status (*get_runtime_version)(const C_Device device, size_t* version)
接口说明
获取运行时版本号。
参数
device - 需要获取版本号的设备。 version - 存储运行时版本号。
get_driver_version 【required】
接口定义
C_Status (*get_driver_version)(const C_Device device, size_t* version)
接口说明
获取驱动版本号。
参数
device - 需要获取版本号的设备。 version - 存储驱动版本号。
get_multi_process 【optional】
接口定义
C_Status (*get_multi_process)(const C_Device device, size_t* multi_process);
接口说明
获取设备上的 MultiProcessor 数量。
参数
device - 需要获取 MultiProcessor 数量的设备。 multi_process - 存储 MultiProcessor 数量。
get_max_threads_per_mp 【optional】
接口定义
C_Status (*get_max_threads_per_mp)(const C_Device device, size_t* threads_per_mp);
接口说明
获取设备每个 MultiProcessor 上的最大线程数。
参数
device - 需要获取每个 MultiProcessor 上的最大线程数的设备。 threads_per_mp - 存储 MultiProcessor 上最大线程数。
get_max_threads_per_block 【optional】
接口定义
C_Status (*get_max_threads_per_block)(const C_Device device, size_t* threads_per_block);
接口说明
获取设备每个 Block 能够运行的最大线程数。
参数
device - 需要获取每个 Block 能够运行的最大线程数的设备。 threads_per_block - 存储 Block 上最大线程数。
get_max_grid_dim_size 【optional】
接口定义
C_Status (*get_max_grid_dim_size)(const C_Device device, std::array<unsigned int, 3>* grid_dim_size);
接口说明
获取设备最大网格维度大小。
参数
device - 需要获取最大网格维度大小的设备。 grid_dim_size - 存储网格维度大小。
init_eigen_device 【optional】
接口定义
C_Status (*init_eigen_device)(C_Place place,
C_EigenDevice* eigen_device,
C_Stream stream,
C_Allocator allocator);
接口说明
初始化 Eigen GPU 设备对象。
参数
place - 使用的设备的 place 对象。 eigen_device - 存储 Eigen GPU 设备对象。 stream - Custom Context 中 stream 对象。 allocator - Custom Context 中的分配器对象。