使用Delphi或FreePascal编程CUDA

Joh*_*ica 6 delphi pascal cuda

我可以使用Delphi或FreePascal创建CUDA/OpenCL应用程序吗?
还是我被迫使用C++和Visual Studio?

快速搜索:cuda + pascal

打开了一些有希望的领先优势,但是如果我想用Pascal启动所有未使用的内核,我有什么选择呢?

小智 5

尝试DELPHI CUDA 在delphi中你应该使用DRIVER API来运行内核,这个实现可以帮助你.源代码中有一些示例 http://code.google.com/p/pascuda/


Dan*_*ett 4

GLScene在其ComputeAPIs文件夹中具有 CUDA + OpenCL 标头转换,但不幸的是没有用于 CUDA/OpenCL 的 Pascal,因此实际的内核需要用 C 语言为 OpenCL/CUDA 编写。

可以使用 clEnqueueNativeKernel 纯粹使用所有 Delphi 代码,但本机内核只能在 CPU 上工作,目前不能在任何现有的 GPU 上工作。在最近的 Delphi 版本中,可以将本机内核与匿名方法结合起来,以产生相当好的解决方案。

例如。您可以编写一个包装函数,它接受匿名方法作为参数,并将其作为本机内核传递给 OpenCL,包装函数可以执行如下操作:

var
  input1, input2, output: array[0..1023] of integer;
begin
  Parallel.For(0, 1023,
         procedure(i: Integer)
         begin
           output[i] := SomeFunc(input1[i]) + AnotherFunc(input2[i]);
         end);
Run Code Online (Sandbox Code Playgroud)