Opencl 我可以使用Julia编程我的GPU&;中央处理器?

Opencl 我可以使用Julia编程我的GPU&;中央处理器?,opencl,julia,gpu,julia-gpu,Opencl,Julia,Gpu,Julia Gpu,我的系统有显卡。我不玩游戏 我想编一些高性能的计算程序来娱乐一下 我可以使用JULIA lang来利用我的硬件吗?是的 进入 *如何安装 Pkg.add("OpenCL"); Pkg.update() 使用以下链接检查硬件上的各种OPENCL计算平台 CUDA是NVIDIA的专利,但在科学计算中得到广泛应用。Julia有几个与CUDA相关的软件包,但我一直在使用CUDArt,这对我来说效果很好 通常,您必须手动释放在GPU上分配的内存,但是这个包有向Julia GC注册的CudaArr

我的系统有显卡。我不玩游戏

我想编一些高性能的计算程序来娱乐一下

我可以使用JULIA lang来利用我的硬件吗?

是的

进入

*如何安装

Pkg.add("OpenCL"); 
Pkg.update()
  • 使用以下链接检查硬件上的各种OPENCL计算平台


CUDA是NVIDIA的专利,但在科学计算中得到广泛应用。Julia有几个与CUDA相关的软件包,但我一直在使用CUDArt,这对我来说效果很好

通常,您必须手动释放在GPU上分配的内存,但是这个包有向Julia GC注册的CudaArray类,所以您不必担心内存泄漏。当您的内存需求更高时,您当然可以手动管理内存


当您开始编写自己的内核时,如果您将它们编译到PTX(而不是共享对象/dll),那么直接从Julia调用它们也很容易。如果您采用这种方式,实际上可以在现有的Julia会话中实时重新加载它们。

我正在使用该库成功地使用它。它支持CUDA和OpenCL(以及CPU)

它非常容易理解和使用:

#Random number generation
a = rand(AFArray{Float64}, 100, 100) 
#Basic arithmetic operations
c = sin(a) + 0.5
d = a * 5
下面是一个基准测试:

julia> benchmark()
INFO: Warmup done!
INFO: Matmul
Time (CPU): 0.042887455
Time (GPU): 0.0417952754
INFO: FFT
Time (CPU): 0.074640831
Time (GPU): 0.009890463
INFO: Rand
Time (CPU): 0.089245094
Time (GPU): 0.0097255858
INFO: Vec sort
Time (CPU): 0.11730852
Time (GPU): 0.0384733068

美好的但我没有NVIDIA图形卡。我使用radeon。我想OpenCL对供应商是不可知的。ArrayFire.jl还在开发吗?目前Julia 0.4和0.5中都没有成功。我希望在OpenCL和CUDAnative包的开发完成后,能看到它们之间的性能比较。当然,使用OpenCL可以避免供应商锁定。