直到啥时候才能设置 CUDA 设备(主上下文)调度策略?

Posted

技术标签:

【中文标题】直到啥时候才能设置 CUDA 设备(主上下文)调度策略?【英文标题】:Until when exactly can I set a CUDA device' (primary context) scheduling policy?直到什么时候才能设置 CUDA 设备(主上下文)调度策略? 【发布时间】:2021-01-19 01:43:37 【问题描述】:

我想为(一个)CUDA 设备的(主要上下文)设置调度策略。

阅读Runtime API guide,我注意到:

如果当前设备已设置且该设备已初始化,则此调用将失败并返回错误cudaErrorSetOnActiveProcess。在这种情况下,必须先使用cudaDeviceReset() 重置设备,然后才能设置设备的初始化标志。

设置当前设备 - 我明白了。但是,设备已“初始化”到底意味着什么?如何避免它被“初始化”?

注意:this 问题是相关的。

【问题讨论】:

【参考方案1】:

这似乎意味着设备的主要上下文的初始化。比如这个

cuDevicePrimaryCtxRetain(&pc, device_id);

应该使您无法再设置策略。这是有道理的,因为对于其他上下文,您也可以在创建上下文时设置一次此类策略。

【讨论】:

以上是关于直到啥时候才能设置 CUDA 设备(主上下文)调度策略?的主要内容,如果未能解决你的问题,请参考以下文章

在 cuda 中同步多个设备

在 Android 中使用 Dispatcher v/s 主线程会发生啥

PyTorch 1.0 中文文档:CUDA 语义

在进程调度的上下文中调度程序和调度程序有啥区别

CUDA:啥时候使用共享内存,啥时候依赖 L1 缓存?

Linux设备驱动程序 之 休眠