Valentin <https://github.com/vchuravy> and I are proud to announce a Julia 
wrapper for the Vulkan API <https://www.khronos.org/vulkan/>:
VulkanCore.jl <https://github.com/JuliaGPU/VulkanCore.jl>

Vulkan can be called the successor of OpenGL, but it's a lot closer to the 
hardware, which is why it's not a direct replacement of OpenGL.

In short, the main differences to OpenGL are:

   - lower driver overhead
   - better utilization of multi-core setups
   - shader/kernel are consumed in form of a new intermediate format, SPIR-V 
   <https://www.khronos.org/registry/spir-v/specs/1.0/SPIRV.pdf>, which can 
   be targeted by any language (yes, especially Julia+LLVM)
   - better low-level abstraction for GPU-CPU/GPU-GPU synchronization and 
   memory management
   - GPGPU becomes more of a first class citizen
   - supports a large variety of hardware and platforms (NVIDIA, AMD, 
   Intel, ARM, Android, Linux, Windows 
   <https://en.wikipedia.org/wiki/Vulkan_(API)>...)

One of the more exciting use cases of Vulkan is running Julia kernels over 
GPU-Arrays and then seamlessly visualizing the results.
Enabling this will be a lot of work. Please stay tuned for further posts 
and watch the progress at Vulkan.jl <https://github.com/JuliaGPU/Vulkan.jl>, 
the (not yet finished) higher level abstraction over VulkanCore.jl.

You can find some more information in a blog post 
<http://randomfantasies.com/2016/02/why-im-betting-on-vulkan-and-julia/> I 
recently wrote.

Best,
Simon

Reply via email to