我的筆記本電腦有 - 一個CPU核心i5:Intel(R)Core TM i5-3210M CPU @ 2.50GHz - 一個顯卡:Intel(R)HD Graphics 4000 - 一個Nvidia卡(外部卡): GeForce GT 630M如何在JavaCL中結合CPU和GPU?
但是,當我試圖使用JavaCL.createBestContext(),它看起來就像使用一個卡英特爾高清顯卡。所以我試圖結合使用3:CPU和2個GPU:
List<CLDevice> devices = new ArrayList<CLDevice>();
// try to list all platform and devices
for(CLPlatform platform : JavaCL.listPlatforms()) {
//System.out.println(platform.getName());
for (CLDevice device : platform.listAllDevices(true)) {
System.out.println(device.getName().trim());
devices.add(device);
}
}
CLDevice device1 = (CLDevice)devices.get(0);
CLDevice device2 = (CLDevice)devices.get(1);
CLDevice device3 = (CLDevice)devices.get(2);
CLContext context = JavaCL.createContext(null, device1, device2, device3);
但是我在嘗試使用3時出現錯誤。那麼如何在JavaCL中編譯CPU和GPU?因爲我讀到OpenCL是標準的,通過使用CPU和GPU來支持並行編程。所以,如果我錯過了什麼,請讓我知道。任何想法或答案將不勝感激。
謝謝, Duy。
感謝您的回答,我明白了您的想法,但您是否有任何示例?因爲我在OpenCL中真的很新鮮。 –
@DuyChung我沒有一個簡單的例子給你。由於您是OpenCL的新手,因此我現在會警告多GPU編程。您需要熟悉Java中的多線程,爲併發編程設計的數據類型以及設備之間的負載平衡(如果您希望看到任何加速) – chippies
實際上,我已經嘗試過使用相同平臺的CPU和GPU,但在不同的平臺上,我從來沒有嘗試過,也不知道如何開始。但無論如何,感謝您的信息。我會盡力找出解決方案。 –