2016-02-12 54 views
0

使用OpenCL我能夠獲取我的系統中可用的圖形卡列表(下面的代碼片段),但我還沒有找到確定使用哪一個的方法在運行時。這可能嗎?Java/OpenCL:檢查啓用了哪個圖形卡

for (CLPlatform platform : CLPlatform.listCLPlatforms()) 
{ 
    for (CLDevice gpuDevice : platform.listCLDevices()) 
    { 
     // The CPU shows up as a device, so filter it out. 
     if (gpuDevice.getType() == CLDevice.Type.GPU && gpuDevice.isAvailable()) 
     { 
      availableGPUDevices.add(gpuDevice); 
      numGPUDevices++; 
     } 
    } 
} 

從理論上講,我想能夠沿的線條添加的東西:

if (platform.getActiveGpu().getType() != AMD or NVIDIA) (pseudo-code) 
{ 
    // show warning that a more powerful GPU is available 
} 

我唯一缺少的一塊是確定哪些GPU是活躍在時間的能力。任何幫助非常感謝 - 謝謝!

說明:通過「哪個GPU是活動的」我的意思是我正在尋找確定,此刻我的代碼來檢查這個正在執行,哪個GPU負責渲染屏幕上的內容。我的理解是,兩個GPU都不會同時渲染屏幕的一部分,所以雖然我知道它可以切換很多,但我想捕獲當時正在運行的GPU的快照。

+0

我已經初步證實,OpenCL無法做到這一點,任何確認或否認這個結論都會很棒;並且任何非OpenCL解決方案也將受到歡迎。謝謝! – Mike

+0

「active GPU」是什麼意思? –

+0

你能否清楚你的問題?你想弄清楚你的openCL內核在哪個設備上運行? –

回答

0

不幸的是,OpenCL不支持這一點。