Publicaciones
At The University of Manchester, we have developed a Java library, called  Beehive SPIR-V Toolkit , for generating SPIR-V binary modules that can be dispatched on supported devices, for example, on GPUs. In this post, I will explain why we developed this library, and how developers can use it to build their own SPIR-V modules from Java. Links: https://jjfumero.github.io/posts/2023/11/beehive-...

New Blog Post: Accessible Dynamic SPIR-V Code Generation from Java

Nov 24, 2023
187 Visualizaciones
Unified Shared Memory: Friend or Fue? Understanding the Implications of Unified Memory on Managed Key Takeaways Programming heterogeneous computing systems from managed runtime systems like Java imposes many challenges. One of the biggest challenges is regarding the managed memory management between the JVM and the accelerator memory (e.g., GPU memory, which is not managed by default). The disjoin...

New blog: Unified Shared Memory: Friend or Fue?

Oct 19, 2023
288 Visualizaciones
Level Zero  is a new bare-metal parallel programming framework proposed by Intel for heterogeneous hardware and accelerators. But where can we find all the information? If we look online, there are a few places in which Level Zero discussions and implementation happen. But sometimes, it is not clear which repository or source is the right one for our needs. In this post, we will explain each ...

Exploring Level Zero resources

Sep 16, 2022
126 Visualizaciones
Dealing with GPU drivers for Linux systems can sometimes be overwhelming and a tedious process. In this post, we show how to install the NVIDIA drivers to get access to CUDA and OpenCL parallel programming frameworks and utilities for NVIDIA GPUs. We also show how to install the Intel compute-runtime drivers for accessing, via OpenCL and Level Zero, Intel Integrated Graphics. We showcase the insta...

Installing CUDA, OpenCL and Level Zero in OpenSUSE Leap 15

Sep 09, 2022
323 Visualizaciones
TornadoVM Internals: Java APIs for Compiling Java methods to SPIR-V and running on GPUs via Level Zero  11 minute read  Published:  September 01, 2022 Key Takeaways Developers can use internal TornadoVM APIs to interact with the JIT compiler and the runtime system. The internal APIs are designed using a microkernel software architecture. This post shows how to use the internal APIs ...

New blog post: TornadoVM Internals: Java APIs for Compiling Java methods to SPIR-V and run

Sep 01, 2022
152 Visualizaciones
In this post, we explain how to launch and accelerate Java programs on heterogeneous hardware via TornadoVM with minimal configuration using pre-built Docker images. Key takeaways: Installing drivers, compilers and configuring heterogeneous hardware can be a tedious process (especially for FPGAs). Field Programmable Gate Arrays (FPGAs) are usually seen as hard-to-run hardware accelerators, requiri...

New Blog Entry: Running Java Programs on XPUs with TornadoVM via Docker

Jul 09, 2022
139 Visualizaciones
Windows Subsystem Linux ( WSL ) is a powerful tool to bring native Linux applications to Windows 10 and 11. What is even more appealing though is that we can also execute native applications on GPUs (e.g.,  NVIDIA GPUs and Intel Integrated Graphics ). In this post, I will show you how we can enable TornadoVM to run on Intel HD Graphics via the OpenCL and SPIR-V Backends within WSL using Windo...

New blog post: Running TornadoVM on Intel GPUs using Windows Subsystem for Linux (WSL) for

Jun 29, 2022
128 Visualizaciones
Key Takeaways Shared memory buffers in Level Zero are buffers allocated by the host that are accessible from the host and the device. The device can migrate host memory to device memory in order to increase performance. Using shared memory for non-heavy computing kernels can lead to a performance of up to 3.5x compared to the device and/or host memory on Intel integrated GPUs. Shared memory buffer...

New blog post: Overall Performance of Unified Shared Memory Types with Level Zero on Intel

May 25, 2022
116 Visualizaciones
 In this post we want to explore the memory capabilities of the Level Zero API, and, examine its constraints with respect to memory allocation. https://jjfumero.github.io/posts/2022/04/understanding-memory-allocation-size-limitations-with-levelzero/

New blog post: Understanding Memory Allocation Size Limitations with Level Zero

Apr 07, 2022
235 Visualizaciones
1
2