F.N.B
F.N.B

Reputation: 1619

Compile cuda code for CPU

I'm study cuda 5.5 but i don't have any Nvidia GPU. In old version of nvcc have a flag --multicore to compile cuda code for CPU. In the new version of nvcc, what's is the option?? I'm working on Linux.

Upvotes: 15

Views: 22884

Answers (4)

Ian
Ian

Reputation: 18

This can now be done (kind of) by using HIP.

HIP is a C++ Runtime API and Kernel Language that allows developers to create portable applications for AMD and NVIDIA GPUs from single source code.

This also includes a CPU runtime. HIPIFY is their tool for converting CUDA source code to HIP source code.

So, this means that you can write code in either CUDA or HIP. If you write in CUDA, it first has to be converted to HIP. From HIP, you can compile for CPU, CUDA, ROCm or OpenCL.

Upvotes: 0

Roger Dahl
Roger Dahl

Reputation: 15734

In current versions of CUDA, programs are debugged directly while they are running on the GPU. This is far superior to older versions of CUDA, which used an emulator for debugging. The debugging facilities are also much more powerful in current versions of CUDA.

So, if wish to write any CUDA code, a CUDA capable GPU card will give you immediate return on investment when you need to debug.

You can pick up an older used card for very little. Examine the features of each of the compute capabilities to determine how far back you are willing to go.

There are also some sites online that will let you test out CUDA code. NVIDIA has the CUDA test drive program. The Intro to Parallel Programming course at Udacity includes an online CUDA compiler for the coding assignments.

Upvotes: 0

Robert Crovella
Robert Crovella

Reputation: 152173

CUDA toolkits since at least CUDA 4.0 have not supported an ability to run cuda code without a GPU.

If you simply want to compile code, refer to this question.

If you want to run CUDA codes compiled with CUDA 5.5, you will need a CUDA capable GPU.

If you're willing to use older CUDA toolkits, you could install one of the various emulators, such as this one.

Or you could install a very old (e.g. ~ CUDA 3.0) cuda toolkit that had the ability to run CUDA codes on the CPU.

Upvotes: 7

paulsm4
paulsm4

Reputation: 121829

Ideally, you'd be able to get access to a CUDA-compatible NVidia GPU.

But short of that, here's an emulator that might help:

If you have a Linux box, you can also try Ocelot:

Upvotes: 2

Related Questions