The most important thing is having a CUDA-compatible hardware. Most of current graphics cards coming from NVIDIA (R) are programmable using the CUDA language. In the referred paper you can find an example of algorithm acceleration using multicore GPUs. There are lots of samples at internet for programming CUDA cards in order to exploit the inherent parallelism of some algorithms / functions.
Article Efficient tool path computation using multi-core GPUs
The first very important thing is to have your graphics card (best from nVidia). The simplest solution is to use geforce card (the same that we use in games) or a more efficient Tesla cards (see links below). Another important thing is to have a proper:
motherboard - you mast remember that in better graphic card Supplementary Power Connectors need 2x 6-pins and the Bus Support - PCI Express 3.0. If you want to add more cards you have on board an adequate number of PCI slots.
power supply - The power supply should have sufficient power to easily handle the PC and installed graphics card . In the specification of each card you can find such information. In the computer which I use I have 1000W Power Supply (2X GTX graphic card - see picture below).
PC housing - When performing calculations using graphics cards is growing rapidly the temperature. It is therefore necessary to choose housing that will provide good cooling. In the computer which I use equipped with two GTX 680 cards I use housing Master HAF XM Cooler (see link below), which provides a very good cooling of all components.
If you already have a PC you can have the following software configurations:
You can use one of the following programming language: Open CL (OpenCL programs from C, C++, Fortran, or Python.), CUDA (CUDA programs from C, C++ or Python),
You can use software engineering that support calculations with use of the graphics cards (matlab, mathematica).
Both the first and the second option can be used on the operating system Windows or Linux. Easier configuration is using Windows but stable work done under Linux.
You just need a computer with a CUDA compatible GPU (see below), then of course install the drivers and software for your OS. Power required from your computer depends on the GPU, so you need to check the number of extra connectors that your power supply has (for example, 2x6pin like the GTX 970).
Your question is to general to allow a short or an specific answer. If you find this to long you can contact me.
There are some aspects you are confronted with:
The first and the most important is finances. It will severely limit your expectation horizon and will partly decide over hardare and software options.
For the next aspect. hardware, visit first two wikipedia pages:
- CUDA, and find what "compute capability" is, which is suitable for your application, which Nvidia chip provides it (gt, gk, gm, gp / 1xx, 2xx) and a small list of graphic cards that are based on it
- List of Nvidia graphic cards, where you ill find the complete list of Nvidia graphics cards and look in the lasts columns at processing power (Tflop single AND double precision), power consumption (TDP), and eventualy price and remember the first (card) and especially the second (cip) columns.
For learning, writing, debuging. profiling and testing any card will do. The newest generation ("compute capability") the better. Avoid the firsts couple of entry level as crippled or from older generations (Nvidia marketing policy)
If your application(s) need double precision as CFD, MHD, CAD/CAE (there are some that do not as N-body) and you are from the "enthusiast" class look for dual cards. I personally have three gtx295 (old but decent, double precision and extremely cheap on the second hand market) and looking for a gtx Titan Z (not X. crippled DP), the only professional card which arrived on the consumer maket (NVIDIA mistake?)
As for platform you have Intel (expensive) or AMD (cheaper). Look for a motherboard ith as many accesories and features you can find. You will never know when you will need them.
Be shure to have: as maany processor cores as CUDA cips plus one for the integrated video wwhich drives your display (you may dispense of it but there is no place here).
Be shure to have at least the amount of memory the nividia cards have combined (it is I/O mirrored) plus the memory required for the operating system and the softare applications in use (3-5GB)
As for the PSU you may find some "Online PSU calculator" on the web. Start with about (a reliable) 350W and add the videos. I personally use a 300W Fortron PSP Boster (slides into a CDROM slot) for each 300W hungry gtx295 so they can easely migrate and the PSU takes care of the motherboard only
The last aspect is software begining with the operating system: Windos(which gen)/Linux(wich distro). Prefer mature against new. Next comes the "CUDA Toolkit" and its exhaustive documentation (a must to read). Be aware that new toolkits deprecatred old hardare. And last your specific software: Matlab/octave. IDL/ gdl, python/python (hihi) but these are purpose specific and only you know.