cancel
Showing results for 
Search instead for 
Did you mean: 

Archives Discussions

davetaylorjr
Adept I

Which AMD GPUs and AMD APUs that support AMD Bolt and OpenCL are similar to Nvidia GPUs that support CUDA?

We are a software consulting firm expanding into the field of Bioinformatics and we want to identify AMD GPUs and AMD APUs that support AMD BOLT and OpenCL which are similar to Nvidia GPUs that support CUDA.  A table comparing the two product lines, or two tables describing each product line, would be especially helpful.

Any support offered to software developers and resellers like us would also be very helpful.

Thanks

0 Likes
5 Replies
yurtesen
Miniboss

AMD CPUs and APUs also support OpenCL. Unlike CUDA, you can get your code accelerated on multi-core CPU or CPU+GPU at the same time. BOLT looks like a template library over OpenCL so it should work on devices which support OpenCL I guess...

See page A15

http://developer.amd.com/download/AMD_Accelerated_Parallel_Processing_OpenCL_Programming_Guide.pdf

Mr. Yurtesen,

Thank you so much.  Your document suggestion was outstanding, far more than I had hoped for and right on target for my needs.

And, Mr. Bobwhitecotton,

Thank you for forwarding Mr. Yurtesen's response to me by email.

I am obviously new to these AMD Forums and am eager to select a new system for our firm to support our fledgling Bioinformatics software development project.

At the moment I am leaning toward the HD-7970 GPU and OpenCL or PyOpenCL as a language.

Any thoughts or suggestions will be gratefully accepted.

Thanks again!

0 Likes

I would choose OpenCL/C++ for development. Python can be a bottleneck for serial or multi-core cpu based parts of your program (for example there was serious restrictions with how threads use cores on Python, I am not sure if they fixed it or not). On the other hand, it may be easy to start programming with Python. So, the question is if you need a quick hack or not.

Often scientific programs using Python links with libraries written in C/C++ to obtain high performance. So you may probably hear that Python works as fast as C/C++ in scientific computing, but in reality it is not python which gives the real performance.

However you must choose what you feel is best for your programming skills, time requirements and program specifications. If almost everything requiring performance will be done in OpenCL kernels and if you also know python, then it may be best to go ahead with python. But it may go sour if you need to link with C/C++, you would probably need to code wrappers etc. for those. It can also quickly become cumbersome to mix multiple languages.

There is not a single good language selection, otherwise the answer would be very easy you have to weight the pros and cons for your own situation.

Thank you for the pros and cons of this question.  Since I have only read about C++ and never

programmed in either C or Python, it sounds like C or C++ would be the wiser choice of the two for

longterm usage with OpenCL.

Which leaves the next question - is is easier to program in C or in C++?

And, which one runs faster (if there is a difference)?

Will I be programming in C or C++ when I'm programming in OpenCL, or is OpenCL yet again it's own

third language?

And, are there any advantages to choosing C++ and then using Visual Studio as a programming

front end (which I think would require me to use some Windows O.S.) or am I better off to use a Linux

O.S (eg. RedHat, Centos, etc)?

Thanks again for your advice.

0 Likes

More choices... I found out it is easier to start programming in Linux (probably since compilers etc are very well integrated into the OS) but then if you dont use Linux daily then probably it is easier for you to start programming in Windows. (I dont have much experience with visual studio so thats probably why it was more difficult for me to set up). As in any case, it is a matter of personal choice. If you need to make a program which will compile on both windows and linux, that may be tricky...

While most examples use C on the net, I would recommend C++, it is easier to use on the long run compared to C. I started making small examples in C first, but then switched to C++ because it was easier to allocate arrays etc. You can also mix C/C++ code in the same source file...but probably not a good thing to mix them

OpenCL is extension of C/C++ so they have the similar rules, but not exactly the same because you can not call standard C/C++ libraries from OpenCL etc. Here is probably some good reading material for you:

http://developer.amd.com/wordpress/media/2012/10/CPP_kernel_language.pdf