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
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.
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
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.
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: