OpenCL -> Vulkan: A Porting Guide (#2)

Vulkan is the newest kid on the block when it comes to cross-platform, widely supported, GPGPU compute. Vulkan’s primacy as the high performance rendering API powering the latest versions of Android, coupled with Windows and Linux desktop drivers from all major vendors means that we have a good way to run compute workloads on a wide range of devices. OpenCL is the venerable old boy of GPGPU these days - having been around since 2009.

OpenCL -> Vulkan: A Porting Guide (#1)

Vulkan is the newest kid on the block when it comes to cross-platform, widely supported, GPGPU compute. Vulkan’s primacy as the high performance rendering API powering the latest versions of Android, coupled with Windows and Linux desktop drivers from all major vendors means that we have a good way to run compute workloads on a wide range of devices. OpenCL is the venerable old boy of GPGPU these days - having been around since 2009.

Adding JSON 5 to json.h

I’ve added JSON 5 support to my json.h library. For those not in the know, JSON 5 (http://json5.org/) is a modern update to the JSON standard, including some cool features like unquoted keys, single quoted keys and strings, hexdecimal numbers, Infinity and NaN numbers, and c style comments! As is sticking with the design of my lib - each of the features can be turned on individually if you don’t want the full shebang, or just add json_parse_flags_allow_json5** **to enable the entire feature set.

Adding loops (MPC -> LLVM for the Neil Language #5)

This is part of a series, the first four parts of the series can be found at: Hooking up MPC & LLVM Cleaning up the parser Adding type identifiers Adding branching In this post, we’ll cover how to add loops to our little toy language I’m calling Neil - Not Exactly an Intermediate Language. To keep things simple, I’ve decided to add loops of the form: Grammar Changes We need to add a new kind of statement to the grammar, one for our while loops:

Adding branching (MPC -> LLVM for the Neil Language #4)

This is part of a series, the first three parts of the series can be found at: Hooking up MPC & LLVM Cleaning up the parser Adding type identifiers In this post, we’ll cover how to add branching support to our little toy language I’m calling Neil - Not Exactly an Intermediate Language. To keep things simple, I’ve decided to add branching of the form: With the following caveats: we will not support else branches we will only support <.