There are a number of very old threads on CUDA so I'm starting a new one rather than resurrecting an old one.

Does anyone here have any experience setting up and developing in CUDA on a Windows platform? I know that there is a system that can be set up with Visual Studio/CUDA that uses the nvidia hardware but I am hoping to find something for AMD/Radeon. I have found something called ocelot that supposedly works with AMD/Radeon (which I have on my laptop) but there are issues:

  1. It has the smell of abandonment (hasn't been updated since 2013)
  2. It requires a linux-like framework (mingw)
  3. by their own admission "Ocelot currently is lacking good documentation for installation and common usage"

If anyone is aware of an implementation of CUDA that uses AMD/Radeon (and as a bonus, works with Visual C++) I'd appreciate it if you could post here. If I come across anything I'll do likewise.

Recommended Answers

All 11 Replies

OpenCL comes close. It supports AMD/Radeon but not my particular hardware. I'll have to look into CUDA-waste.

#1 Son just started a research position in Cambridge, UK and the group is interested in getting into GPU programming. Since my son's PhD was in computational biophysics, he is going to be their go to guy and they are looking to him to take the first steps into setting up a development system. Fortunately, since he is starting from scratch, he is able to pick a system for himself that was a perfect fit for the most common development environment. Because the group wants to stay on a Windows-based system, he will be getting a system with an Nvidia graphics processor. This will allow him to run the Nvidia/CUDA software under Visual Studio. I already run Visual Studio but my system has AMD Radeon R5 graphics hardware. I was hoping to be able to run something here that was compatible with what he will be doing as I expect I will be asked questions from time to time.

@rproffitt - That link looks like gold. From what I can tell, ArrayFire will use CUDA or OpenCL (whichever is available/installed) and if neither, it will drop back and just execute on the CPU. I've sent them a query with my specifics to see if ArrayFire would be suitable.

Now if there was only a version available for APL.

That was a joke.

(but maybe not).

I've found the moment others make a joke about some esoteric thing, someone has made a project out of it.
Unless I'm the one with the joke. Then I can't find it.

Here you go. APL with CUDA upport. https://github.com/Co-dfns/Co-dfns

APL with CUDA support

Well, of course. It only makes sense. APL was designed to operate on sets of data. It's only natural to actually do the operations in parallel. If anyone is interested in trying APL (with the real syntax as opposed to the "fake" syntax that uses the standard keyboard, I suggest you have a look at narsAPL. It's a robust implementation that also happens to be free. It's much more complete than the APL360 I used in University os the vsAPL I used a few years later.

Also found cu2cl and this emulator.

On reflection, I should have titled this thread Cude-like GPU Programming on AMD Radeon.

commented: Dad response. Hello Cude. +15

I would say this is not a dead issue at all.

CUDA coding is the future and Open CL is a hog if anything for the complex nature of having to reinvent the wheel over and over.I looked at using Open CL for some time but found it far to complex and complicated to implement in existing code for my purposes using it mostly for mathematics and statistics.

Without any Bias I can say Open CL seems perfect for gamers and those developing towards a wide audience of users.
GeForce and other NVidia cards support Open CL to great extent but I would not count on any support beyond Open CL 2.0 as NVIDIA is moving away from it.

Even so, CUDA has many later improvements and variations with the addition of other specialized APIs in later GPU models.

CUDA is widely becoming an industry standard and it is far simpler to work with.
Especially since the onset of CUDA computing level 5.0 and upwards allowing for "dyanmic parallelism" which means you do not have to double the storage in both host (CPU) and device (GPU) as well as being able to call functions (called Kernels) directly from another loaded kernel. This simply enlarges the parallelism of the system.

Modern applications such as Adobe, Autodesk, Mozilla/Firefox and others have enabled drawing upon the powers of CUDA.
Just look for example on Mozilla Firefox 58.0.2 (Quantum) also using CUDA for speeding up browsing and UX features.

CUDA is far from dead, nor is Open CL but I think AMD needs to catch up in the hardware aspect and simplify coding further to really make full use of the design in any real sense beyond gaming and physics or scientific settings today.

Please note there are open source implementations of Open CL frameworks which simplify coding much towards a style following CUDA but this may still be prone to some redundancy and overhead. Thus I don't want to promomte them prior a thorrough review of the framework myself.

To answer the original question.
No there are no methods to run CUDA on an AMD card.
CUDA is proprietary to NVIDIA and OpenCL is Open Source available to both hardware platforms.
It would be like trying to convert diesel and run it in a gasoline engine car.

I got a reply from someone on an AMD forum. Even though my hardware is not included in the "list of supported" I have been told it will worl with OpenCL. I have the files downloaded and will try them later today after my daily differential system image is taken. The instructions for setup are nowhere near as detailed and complete as for CUDA. There's catching up to be done there as well.

I have most of the infrastructure installed. Now it's a matter of configuring everything so that I can compile/run the sample code. Not having much luck with that. For one thing, I can no longer modify the IDE paths to add the ArrayFire include and lib folders. It seems I have to add the new include and lib to every new project I create. This is extremely annoying.

Also, I decided to bite the bullet and install Visual Studio 2017 Community Edition (I was using VS 2012). I was led to believe that this was the "free" version but VS says my trial period will expire on May 22 and I can log in to my account to extend the trial period. What gives? Is the community edition free or isn't it? If it is free, I don't see why I should have to keep extending the trial period.

Tried to build an exe from one of the OpenCL sample projects. I got 258 errors. I was referred to the first AMD SDK documents which started with

The AMDAPPSDKROOT variable must be set to:

C:\Program Files\AMD APP SDK\ (for 32-bit systems)
C:\Program Files (x86)\AMD APP SDK\ (for 64-bit systems)

Anyone see anything immediately wrong with this? Also, the online ArrayFire documentation says to set certain values in the build environment and the values that are actually in the sample project are completely different. So far I'm not impressed.

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.