我的系统有显卡。我不玩游戏。
我想编写一些高性能计算的东西以获得乐趣。
我可以使用JULIA lang来利用我的硬件吗?
答案 0 :(得分:11)
是<!/强>
*如何安装?
Pkg.add("OpenCL");
Pkg.update()
使用以下链接检查硬件上的各种OPENCL计算平台
https://github.com/JuliaGPU/OpenCL.jl/blob/master/examples/performance.jl
答案 1 :(得分:4)
CUDA是NVIDIA的支柱,但广泛用于科学计算。 Julia有几个与CUDA相关的软件包,但我一直在使用CUDArt,它对我来说效果很好。
https://github.com/JuliaGPU/CUDArt.jl
通常你必须手动释放你在GPU上分配的内存,但是这个软件包具有在Julia GC中注册的CudaArray类,因此你不必担心内存泄漏。当您的内存需求更高时,您当然可以手动管理内存。
当你开始编写自己的内核时,如果将它们编译为PTX(而不是共享对象/ dll),也可以直接从Julia调用它们。如果你以这种方式接近它,你实际上可以在现有的Julia会话中重新加载它们。
答案 2 :(得分:4)
我使用ArrayFire成功使用the Julia wrapper库。它支持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