不同的支持 CUDA 的卡真的有不同的优先级范围吗?

ein*_*ica 1 cuda

CUDA Runtime API 文档告诉我们,如果设备不支持优先级,则优先级范围可能是 0-0。但是 - 不同的设备实际上有不同的优先级范围吗?

Rob*_*lla 5

目前(CUDA 8,通过 pascal,未来可能会有变化),对于流优先级,CUDA 设备支持:

  • (CC <= 3.0 的设备)单个可能的优先级,优先级 0。
  • (设备 >= CC 3.5 )两个优先级,-1 和 0。

以下代码可用于探测:

#include <iostream>

int main(){

int priority_high, priority_low;
cudaDeviceGetStreamPriorityRange(&priority_low, &priority_high);
std::cout << priority_high << "," << priority_low << std::endl;
}
Run Code Online (Sandbox Code Playgroud)

请注意,根据文档,编号较低的优先级值被认为是更高的优先级,因此 -1 的流优先级高于优先级 0。

流是每个设备的概念,因此自然流优先级仅在与特定设备关联的内核启动内有效。