Skip to content

cupbop/CuPBoP_Vortex

Repository files navigation

CuPBoP: Cuda for Parallelized and Broad-range Processors

Introduction

CuPBoP is a framework designed to execute unmodified CUDA source code on non-NVIDIA devices. It currently supports several CPU backends, including x86 and AArch64, as well as GPU backends such as AMD GPUs and the open-source RISC-V (Vortex). This repository specifically focuses on enabling CUDA execution on Vortex GitHub link.

Please look at the following files to understand the basics of CuPBoP:

Basic Definitions and Concepts

Codebase Overview

Install

Prerequisites

  • Linux: Verified on Ubuntu 18.04 / 20.04
  • LLVM 18.1.7 (Vortex extended LLVM)
  • NVIDIA CUDA Toolkit: Verified on CUDA 12.1.1
  • x86 CPU
  • GCC: Verified with 7.5.0, 10.5.0
  • CMake (>= 3.10)
  • System libraries (Ubuntu/Debian):
    • libtinfo-dev
    • zlib1g-dev
  • Vortex 2.0: Verified with commit on Aug 2, 2025

Installation Procedure

If you have access to the Kia or Volvo (server that needs GT credentials to access), follow the shared Notion setup guide.

If not, follow this guide instead: Non Kia/Volvo Setup

Please look at File Directory Setup to understand how your codespace should look like in the end and how to set up environment variables.

Benchmarks (Update)

Test benchmarks (table updated on May 14, 2025)

CuPBoP includes a subset of Rodinia/Hetero-Mark benchmarks to test functionality. Benchmarks supported with Vortex 2.0 are available in the /example folder, each with a kjrun_llvm18.sh file.

While you can run a benchmark by running cd/Cupbop/examples/[benchmark name] & ./kjrun_llvm18.sh, you will generate a lot of files and directories in the process. It would take some time to remove all newly generated files and directories and there is a chance one can accidentally delete the wrong file(s). Please use the makefile in the \examples folder and you can refer to this guide: Makefile Guide

Take a look at this list to identify which benchmarks are and aren't supported.

If you want to add more RODINIA benchmarks to the examples/ folder, please refer to the following guide to help you: Benchmark Creation

Common Issues

Refer to this guide to figure out some issues you might be facing: Common Issues

Feel free to add to this guide if you fixed any issues so it can be helpful for anyone in the future!

How to contribute?

Any kinds of contributions are welcome.

Please refer to Contribution.md for more detail.

About

vortex backend

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 10