GPU: Difference between revisions
Jump to navigation
Jump to search
(more float usage) |
(→Modules of interest to be parallelized: +v.surf.bspline) |
||
Line 35: | Line 35: | ||
** (''probably best to focus on the RST library first'') | ** (''probably best to focus on the RST library first'') | ||
* {{AddonCmd|r.viewshed}} | * {{AddonCmd|r.viewshed}} | ||
* {{cmd|v.surf.bspline}} | |||
* {{cmd|r.sun}} | * {{cmd|r.sun}} | ||
* {{cmd|r.proj}} | * {{cmd|r.proj}} | ||
Line 43: | Line 44: | ||
* <strike>{{cmd|r.mapcalc}}</strike> (already has pthreads support; probably I/O-bound) | * <strike>{{cmd|r.mapcalc}}</strike> (already has pthreads support; probably I/O-bound) | ||
* <strike>{{cmd|r.los}}</strike> (to be replaced by r.viewshed after last few bugs are fixed) | * <strike>{{cmd|r.los}}</strike> (to be replaced by r.viewshed after last few bugs are fixed) | ||
* <strike>{{cmd|i.rectify}}</strike> (internal code to be replaced by GDALwarp API) | * <strike>{{cmd|i.rectify}}</strike> (internal code to be replaced by GDALwarp API; note that for the polynomial calcs it's partly the same exact code) | ||
[[Category: Parallelization]] | [[Category: Parallelization]] |
Revision as of 22:10, 10 April 2010
Comments from the mailing list concerning GRASS and GPU parallelization:
- Discussion - GPU Parallelization (follow thread)
- Discussion - OpenCL Parallelization (follow thread)
- Comment
- Comment
- As I understand it, CUDA is 100% dependent on the closed-source binary driver from nVidia and works on their video cards alone. Which is fine for today for people with nVidia hardware using their binary video card driver. If nVidia decides in a couple of years to stop supporting CUDA, your old card, your specific OS or distro, your OS or distro version+cpu type, or if they go out of business or are bought/sold to another company who is not interested, any code based on it becomes useless. For this reason code written for an open platform such as OpenCL, even if less advanced, seems to have a brighter long-term future. -- HB
- Support for double precision floating point values must be retained for calculations which deal with positional data. For elevation and radiometric data floating point precision may be enough.
Further reading
- LINUX Magazine March 10th, 2010
- "GP-GPUs: OpenCL Is Ready For The Heavy Lifting"
- http://www.linux-mag.com/id/7725
- See the "Parallelization" category listing at the bottom of this page.
- OpenCL podcasts: http://www.macresearch.org/opencl
Interesting Hardware
- NVIDIA GeForce 480, packed with 3 billion transistors, 480 visual processing cores, 16 geometry units and 4 raster units. Multi-card SLI provides additional 90% performance boost.
Modules of interest to be parallelized
The target version will be GRASS 7 (alias SVN trunk).
- v.in.ogr or underlying vector library functions to build topology and spatial index
- v.surf.rst
- v.vol.rst
- (probably best to focus on the RST library first)
- r.viewshed
- v.surf.bspline
- r.sun
- r.proj
- v.proj
- v.net.* ???
- raster library
- ...
r.mapcalc(already has pthreads support; probably I/O-bound)r.los(to be replaced by r.viewshed after last few bugs are fixed)i.rectify(internal code to be replaced by GDALwarp API; note that for the polynomial calcs it's partly the same exact code)