使用cudaDeviceGetP2PAttribute api的代码示例
以下是一个使用cudaDeviceGetP2PAttribute API的示例代码:
#include <stdio.h>
#include <cuda_runtime.h>
int main() {
int deviceCount;
cudaGetDeviceCount(&deviceCount);
for (int i = 0; i < deviceCount; i++) {
cudaDeviceProp deviceProp;
cudaGetDeviceProperties(&deviceProp, i);
printf("Device %d: %s\n", i, deviceProp.name);
for (int j = 0; j < deviceCount; j++) {
int p2pEnabled;
cudaDeviceGetP2PAttribute(&p2pEnabled, cudaDevP2PAttrPerformanceRank, i, j);
if (p2pEnabled) {
printf(" Device %d supports P2P communication with Device %d\n", i, j);
}
}
}
return 0;
}
这段代码遍历了所有的CUDA设备,并使用cudaDeviceGetP2PAttribute API查询设备之间是否支持P2P通信。如果返回的p2pEnabled为非零值,则表示两个设备之间支持P2P通信。输出结果中会显示出支持P2P通信的设备对。
注意,为了成功编译和运行此代码,您需要包含cuda_runtime.h头文件,并将代码与CUDA运行时库链接
原文地址: https://www.cveoy.top/t/topic/ijtn 著作权归作者所有。请勿转载和采集!