cancel
Showing results for 
Search instead for 
Did you mean: 

Archives Discussions

ssh9105
Journeyman III

OpenCL with AMD and NVIDIA GPUs

Hi, I just started to learn OpenCL and want to ask a question about it.

I'm trying to solve nonlinear differential equations.

At first, I started with OpenACC with NVIDIA GeForce GPU. It was faster than using Intel i7 CPU with OpenMP, but not fast enough to get results quickly.

After trying to find a way to reduce calculation time, I bought AMD FirePro W9100 32GB with research fund, but it does not support OpenACC.

(I need to use double variables, and AMD FirePro W9100 seems to have excellent fp64 capability with relatively lower price than NVIDIA Tesla models)

So, I started to learn OpenCL and made it work.

Then, I thought about running OpenCL code with AMD FirePro W9100 and NVIDIA GeForce.

In other words, running two separate OpenCL codes(namely code A and B) at the same time, where code A uses AMD and code B uses NVIDIA.

However, there is saying that AMD and NVIDIA GPU drivers might crash, so I'm using only AMD GPU for now.(Using code A with AMD and code B with Intel i7 CPU)

Is it true that one cannot install AMD FirePro and NVIDIA GeForce at the same system? If not, may I ask you how to do that?

Here are specs of my computer:

OS : Windows 10 64bit(I may install Ubuntu 16.04 if Windows does not support installing AMD FirePro and NVIDIA GeForce at the same system)

CPU : Intel i7-6700 3.40GHz

Motherboard : ASUS B150M-PLUS(If it is possible to install AMD FirePro and NVIDIA GeForce at the same system, I will buy a new motherboard with size ATX or larger in order to install AMD and NVIDIA GPUs at the same motherboard)

Memory : 4 * Samsung DDR4 8GB PC4-17000

Power Supply : FSP AURUM PRO AU-1000 (ATX/1000W)

Case : BRAVOTEC Stealth FX470(W210mm * H504mm * D512mm) which can support E-ATX size motherboard

Number of coolers : 8(4 Micronics Freezer 4-LED 120mm fans). 3 front, 3 upper, 1 below, 1 back. There is no water cooling loop.

Thank you for your help in advance.

0 Likes
5 Replies
dipak
Big Boss

Multiple vendor platforms can co-exist. OpenCL ICD loader mechanism enables an application to access all the platform ids exposed by all the vendor implementations and select the vendor specific devices accordingly.

OpenCL basics: Multiple OpenCL devices with the ICD. - StreamHPC

https://www.khronos.org/registry/OpenCL/extensions/khr/cl_khr_icd.txt

Regards,

Thanks, but I'd like to ask two more questions to make sure that I understand your reply.

So, after installing AMD FirePro and NVIDIA GeForce to a single motherboard(with size ATX or bigger with at least two PCIe3.0), one can install AMD driver and NVIDIA driver to a single OS(for example, Windows 10) and use OpenCL ICD(maybe one needs to install AMD OpenCL SDK and NVIDIA OpenCL SDK prior to compile OpenCL code?) by adding "#pragma OPENCL EXTENSION cl_khr_icd : enable" below the line "#include <CL.cl.h>(or corresponding header file)"?

Then, by following instructions in khronos website about cl_khr_icd, one can run code A for AMD FirePro and code B for NVIDIA at the same time without driver conflict or any problems?

If answers to above two questions are yes, then I will buy a new motherboard and try to follow your reply.

Regards,

0 Likes

Yes, your assumption is correct.  As an example, this below thread shows such a multi-gpu systems described by Huseyin Tugrul BUYUKISIK.

Optimize unity 3d games on openCL

Regarding the system configuration and compatibility of the components, it's better to check the specifications or contact with the corresponding hardware/software support team before building such a multi-gpu system based on multiple vendors.

Regards,

0 Likes

I don't have Nvidia card but someone in reddit tried this and intel(igpu) + nvidia(dgpu) worked together. I only tested with 2 Amd cards + Amd CPU.

Regards.

0 Likes
ssh9105
Journeyman III

Thank you for your kind replies.

I bought an ATX size motherboard, and checked that I can use NVIDIA GPU with AMD FirePro GPU yesterday.

After installing NVIDIA driver(of course, before that, I installed AMD driver, AMD SDK 3.0), by using clGetDeviceInfo with option CL_DEVICE_VENDOR, I successfully changed my code to choose whether it will use AMD GPU, NVIDIA GPU, or Intel CPU.(Even though I didn't add #pragma OPENCL EXTENSION cl_khr_icd : enable...)

So far, there is no driver conflict or any problems.

0 Likes