Yen-Chieh Huang, Chen-Pin Yang, Tsung Tai Yeh
The 52nd Annual International Symposium on Computer Architecture (ISCA), June 21–25, 2025, Tokyo, Japan.
[Paper Link] [Poster Link] [PPT Link]
AQB8 is a ray tracing accelerator designed to operate on quantized BVH trees using a novel multi-level quantization technique. This approach enables ray traversal to use low-bit integer arithmetic, significantly reducing reliance on FP32 operations. The hardware is simpler and more area- and energy-efficient.
Key benefits:
- 70% reduction in DRAM accesses
- 49% reduction in energy consumption
- 27% reduction in hardware area
- 1.82× performance speedup over modern GPU RT accelerators
Architectural modifications from a (a) baseline RT accelerator to our (b) quantized RT accelerator. The hardware block diagrams for the BOX and QBOX units are detailed in (c) and (d), respectively.
We provide a Docker image to run AQB8 on Vulkan-Sim.
Make sure Docker is installed before proceeding.
Run with the included script:
chmod +x docker_run.sh
./docker_run.sh#!/bin/bash
# docker_run.sh - Run the AQB8 Vulkan-Sim Docker container
IMAGE="ycpin/aqb8-vulkan-sim"
CONTAINER_NAME="aqb8-vulkan-sim-container"
echo "Pulling Docker image: $IMAGE"
docker pull "$IMAGE"
echo "Running Docker container: $CONTAINER_NAME"
docker run -it --rm --name "$CONTAINER_NAME" "$IMAGE"The image includes six implementations of AQB8 on Vulkan-Sim, covering baseline, compressed, and quantized (AQB8) versions, each with 2-wide and 6-wide BVH trees.
Each folder corresponds to a Git branch containing a specific implementation:
/home/ <branch-name>
├── vulkan-sim-baseline-2wide/ ← baseline-2wide
├── vulkan-sim-baseline-6wide/ ← baseline-6wide
├── vulkan-sim-compress-2wide/ ← compress-2wide
├── vulkan-sim-compress-6wide/ ← compress-6wide
├── vulkan-sim-quantized-2wide/ ← AQB8-2wide
└── vulkan-sim-quantized-6wide/ ← AQB8-6wide
Each implementation is maintained in its own dedicated Git branch, named to match the corresponding folder. You can switch between them using:
git checkout <branch-name>For example, to switch to the AQB8 2-wide simulation environment:
git checkout AQB8-2wideAdditionally, the hardware code for the AQB8 accelerator itself is available in a separate branch named RTL. To access the hardware design files, you can checkout this branch:
git checkout RTLNavigate to one of the simulation folders, e.g.:
cd /home/vulkan-sim-quantized-2wide/vulkan-sim-root/source embree-3.13.4.x86_64.linux/embree-vars.shcd vulkan-sim/
source setup_environment
cd ../mesa-vulkan-sim/
meson --prefix="${PWD}/lib" build -Dvulkan-drivers=swrast -Dgallium-drivers=swrast -Dplatforms=x11 -D b_lundef=false -D buildtype=debug
ninja -C build/ install # May fail the first time — this is expected
export VK_ICD_FILENAMES=${PWD}/lib/share/vulkan/icd.d/lvp_icd.x86_64.json
cd ../vulkan-sim/
make -j
cd ../mesa-vulkan-sim/
ninja -C build/ install # This second build should succeedcd ../RayTracingInVulkan/
./build_linux.shcd ..
bash rt_program_128.sh # Resolution: 128x128
bash rt_program_256.sh # Resolution: 256x256Output logs and results are located in:
/RayTracingInVulkan/build/linux/bin/
If you use AQB8 in your research, please cite our ISCA 2025 paper:
@inproceedings{huang2025aqb8,
title = {AQB8: Energy-Efficient Ray Tracing Accelerator through Multi-Level Quantization},
author = {Yen-Chieh Huang and Chen-Pin Yang and Tsung Tai Yeh},
booktitle = {Proceedings of the 52nd Annual International Symposium on Computer Architecture (ISCA)},
year = {2025},
address = {Tokyo, Japan}
}For questions or collaborations, please open an issue or contact the authors directly.
