我能用Delphi或FreePascal创建CUDA / OpenCL应用程序吗?
还是必须使用C ++和Visual Studio?
快速搜索:cuda + pascal
出现了一些有希望的线索,但似乎都没有起作用,如果我想使用Pascal启动所有未使用的核心,我有哪些选择?
我能用Delphi或FreePascal创建CUDA / OpenCL应用程序吗?
还是必须使用C ++和Visual Studio?
快速搜索:cuda + pascal
出现了一些有希望的线索,但似乎都没有起作用,如果我想使用Pascal启动所有未使用的核心,我有哪些选择?
试试这个 DELPHI CUDA。 在 Delphi 中,你需要使用 DRIVER API 来运行内核,这个实现会帮助你。 源代码中有例子。 http://code.google.com/p/pascuda/
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);
您需要使用C/C++编写实际的CUDA内核。除此之外,没有其他方法。除非Pascal可以通过C语言进行扩展或链接到C/C++库(我认为从您提到的链接中可以),否则我认为没有其他方法。