2015-06-10 7 views

Antwort

11

JA!

Geben Sie OpenCL.jl

*, wie installieren?

Pkg.add("OpenCL"); 
Pkg.update() 
  • Verwenden Sie den folgenden Link, um die verschiedenen OpenCL Compute-Plattformen auf Ihrer Hardware

https://github.com/JuliaGPU/OpenCL.jl/blob/master/examples/performance.jl

+0

Es würde mich interessieren, einige Vergleiche zwischen OpenCL und dem CUDAnative Paket, um zu sehen, wenn es Entwicklung ist abgeschlossen . Mit OpenCL vermeiden Sie natürlich die Herstellersperre. –

4

CUDA ist für NVIDIA propietary zu überprüfen, sondern ist weit verbreitet in wissenschaftlichen Rechnens verwendet. Julia hat mehrere CUDA-bezogene Pakete, aber ich habe CUDArt benutzt, was ziemlich gut für mich funktioniert hat.

https://github.com/JuliaGPU/CUDArt.jl

Normalerweise haben Sie manuell freien Speicher Sie auf dem GPU zuordnen, aber dieses Paket hat CudaArray Klassen, die mit der Julia GC registriert sind, so dass Sie nicht über Speicherlecks zu kümmern. Wenn Ihre Speicheranforderungen anspruchsvoller sind, können Sie den Speicher natürlich manuell verwalten.

Wenn Sie mit dem Schreiben eigener Kernel beginnen, können Sie sie auch direkt von Julia aus aufrufen, wenn Sie sie nach PTX kompilieren (nicht nach geteilten Objekten/DLLs). Sie können sie tatsächlich in einer bestehenden Julia-Sitzung neu laden, wenn Sie sich auf diese Weise nähern.

+1

Schön. Aber ich habe keine NVIDIA-Grafikkarte. Ich benutze Radeon. Und OpenCL ist Anbieter agnostisch, denke ich. – suryakrupa

4

Ich verwende erfolgreich die ArrayFire Bibliothek mit the Julia wrapper. Es unterstützt sowohl CUDA als auch OpenCL (und CPU).

Es ist ziemlich einfach zu verstehen und zu verwenden:

#Random number generation 
a = rand(AFArray{Float64}, 100, 100) 
#Basic arithmetic operations 
c = sin(a) + 0.5 
d = a * 5 

Hier ist ein Benchmark-Durchlauf:

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 
+0

wird ArrayFire.jl noch entwickelt? es ist derzeit in Julia 0,4 und 0,5 versagt. –

Verwandte Themen