根據(jù)cudaGetDeviceCount()和cudaGetDeviceProperties()中返回的結果,我們可以對每個設備進行操作。
代碼如下:
int main(void) {
????cudaDeviceProp prop;
????int dev;
????cudaGetDevice(&dev);
????printf("ID of current CUDA device: %d\n", dev);
????memset(&prop, 0, sizeof(cudaDeviceProp));
????prop.major = 1;
????prop.minor = 3;
????cudaChooseDevice(&dev, &prop);
????printf("ID of CUDA device closest to revision 1.3: %d\n", dev);
????cudaSetDevice(dev);
????return 0;
}
聲明一個cudaDeviceProp結構后,將其傳遞給cudaChooseDevice(),CUDA運行時將查找是否存在某個設備滿足這些條件,cudaChooseDevice()函數(shù)將返回一個設備ID,然后將這個ID傳遞給cudaSetDevice(),隨后所有的設備操作都將在這個設備上執(zhí)行。