15

GPGPU is the principle of using the parallel processors on video cards for massive increases in performance.

Does anyone have any ideas about using GPGPU in Delphi, using either OpenCL or CUDA? CUDA was/is NVidia only, but they have also adopted the OpenCL "standard".

I found a few Delphi samples from Google searches but they either crash or don't compile/run.

The ultimate instruction sample would be:

  1. Download and install the OpenCL DLLs from here.
  2. Download the OpenCL SDK from from here.
  3. Download this sample Delphi project from here.
  4. Open and compile the Delphi project. If all goes to plan it will do "whatever it is supposed to do"

At that stage I can then start researching the OpenCL SDK and writing/compiling DLLs to call from any Delphi app.

This sort of stuff is really starting to take off. Embarcadero do not have to do anything themselves at this stage (unless they want to), but if there were a tutorial and samples for Delphi available it would be great. Many samples are available for other languages, but we do also need a good and simple Delphi example to show how easy it is to use Delphi for GPGPU apps.

apaderno
  • 28,547
  • 16
  • 75
  • 90
TallGuy
  • 151
  • 1
  • 3
  • What kind of algoritms do you want to accelerate? It only works if they are inheritly paralel. – Marco van de Voort Dec 20 '09 at 18:03
  • I am aiming at graphics/raytracing etc at the moment that are perfect for paralel processing. Some of the realted examples I have seen give orders of magnitude speedups. Even if it does have a tendancy to fry your video card unless you have decent cooling. – TallGuy Dec 22 '09 at 11:28

4 Answers4

9

You could be interested in GPGPUonDelphi2007.

GPGPU example plus needed OpenGL and CG libraries for Delphi 2007 now available!

I created the necessary OpenGL and CG (delphi) packages yesterday and finished converting/translating/porting a C GPGPU OpenGL/CG example to Delphi today, and I would like to share it with you so that maybe some more (Delphi) people will look into GPGPU programming, especially with OpenGL 3.0 for (older) DX9 graphics cards.

apaderno
  • 28,547
  • 16
  • 75
  • 90
9

CUDA is still nVidia only, and that won't change. OpenCL is a true standard in this case, not only limited to GPGPU.

As for using it in Delphi, all I know of is how to use it in Free Pascal. However, there's quite some chance that the code will be portable, here's a link to updated headers:

FreePascal Mantis RFE OpenCL

As for DLL's, if you use nVidia, they can be found here.

Here however we have a sample project in Delphi.

Kornel Kisielewicz
  • 55,802
  • 15
  • 111
  • 149
  • The "Here" link above is dead. Alternative examples can be found here: https://github.com/thecocce/delphi-opencl – z0rberg's Aug 08 '20 at 12:04
1

I made a floating point test, using OpenCL and Delphi, some time ago: https://plus.google.com/110131086673878874356/posts/eWcipK16MV7 (contains link to demo and sources)

André
  • 8,920
  • 1
  • 24
  • 24
  • The link above is dead. I've found alternative examples here: https://github.com/thecocce/delphi-opencl – z0rberg's Aug 08 '20 at 12:03
1

You should use CUDA DELPHI

In native pascal code you can run CUDA kernels

DELPHI CUDA
  • 61
  • 1
  • 1