About

I am a software developer, currently working in the Chrome team at Google.

This is my personal blog.

I work on GPU language standards, compilers, and related tooling:

  • I am an editor for the WebGPU Shading Language (WGSL)
  • I was chair of the SPIR Working Group at Khronos, working on the SPIR-V intermediate language for GPUs.
  • Some of my team’s current and past projects include:
    • Tint: A WGSL compiler used by Chrome’s implementation of WebGPU.
    • SPIRV-Tools: Low level SPIR-V utilities including an assembler, disassembler, parser, validator, and optimizer. We maintain this on behalf of the Khronos Group.
    • The SPIR-V backend for DXC, Microsoft’s HLSL compiler.
    • Clspv: A prototype OpenCL C to Vulkan SPIR-V compiler.
    • Amber: A text-based shader test framework.
    • Shaderc: A wrapper around Glslang, a compiler for GLSL to SPIR-V.
    • Effcee: A C++ library for stateful pattern matching of strings, inspired by LLVM’s FileCheck command. Use it fast in-process testing such as in googletest. It is used to test DXC and SPIRV-Tools.

Previously I worked at Altera, on FPGA CAD, including the first conformant OpenCL implementation for FPGAs.

In 1999 I completed a PhD in Computer Science at the University of Toronto, under the supervision of Prof. Derek Corneil. The thesis is Efficient Cluster Compensation for Lin-Kernighan Heuristics, PDF

You can find me at: