使用Delphi或FreePascal编写CUDA程序

6

我能用Delphi或FreePascal创建CUDA / OpenCL应用程序吗?
还是必须使用C ++和Visual Studio?

快速搜索:cuda + pascal

出现了一些有希望的线索,但似乎都没有起作用,如果我想使用Pascal启动所有未使用的核心,我有哪些选择?

4个回答

5

1
@Johan,访问|浏览|主干,你会找到源代码和示例。 - LU RD
https://github.com/search?q=pascuda&type=Repositories 现在显示了3个副本。 - Nashev
作者最初的公告在这里:https://devtalk.nvidia.com/default/topic/516625/cuda-in-delphi/ - Nashev

4

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

可以使用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);

1

您需要使用C/C++编写实际的CUDA内核。除此之外,没有其他方法。除非Pascal可以通过C语言进行扩展或链接到C/C++库(我认为从您提到的链接中可以),否则我认为没有其他方法。


0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接