[OpenCL] getDevices流程

OpenCL環境配置[on Mac]一文中,提供程式碼讓讀者獲取OpenCL所支援的Platform與Device

對Linux Kernel熟悉的讀者,Platform包括了Driver與對Device支援的資訊,開發者可以藉由Platform中的Driver來對Device進行控制

現在就讓我們在Mac Pro上實際演練一次吧!!!

實際演練

初始狀態: 未偵測到任何Platforms及Devices
偵測platform

clGetPlatformIDs()偵測到Mac Pro上有Apple所開發的OpenCL platform,其可以用於連結支援OpenCL的Device,所謂的Device可以是CPU or GPU

偵測platform所對應的程式碼

偵測Devices

clGetDeviceIDs()偵測到platform#0所支援OpenCL的CPU or GPU

偵測Devices所對應的程式碼


假想狀況

Mac上只有一個Platform和一個Device,實在很難呈現出Platform與Device間的關係,因此用這個假想的狀況來說明可能遇到的情況,假設我購買了一台配置SnapDragon Elite CPU及Nvidia的顯卡那會是什麼情況

初始狀態: 未偵測到任何Platforms及Devices
偵測platform

clGetPlatformIDs()偵測到Qualcomm的SnapDragon PlatformNvidia的Geforce Platform,他們分別可以支援Qualcomm的內部顯示卡Nvidia的獨立顯卡

偵測Devices

clGetDeviceIDs()偵測到platform#0(Qualcomm), platform#1(Nvidia)所支援內部顯示卡獨立顯示卡