COX: CUDA on X86 by Exposing Warp-Level Functions to CPUs

12/19/2021
by   Ruobing Han, et al.
0

As CUDA programs become the de facto program among data parallel applications such as high-performance computing or machine learning applications, running CUDA on other platforms has been a compelling option. Although several efforts have attempted to support CUDA on other than NVIDIA GPU devices, due to extra steps in the translation, the support is always behind a few years from supporting CUDA's latest features. The examples are DPC, Hipfy, where CUDA source code have to be translated to their native supporting language and then they are supported. In particular, the new CUDA programming model exposes the warp concept in the programming language, which greatly changes the way the CUDA code should be mapped to CPU programs. In this paper, hierarchical collapsing that correctly supports CUDA warp-level functions on CPUs is proposed. Based on hierarchical collapsing, a framework, COX, is developed that allows CUDA programs with the latest features to be executed efficiently on CPU platforms. COX consists of a compiler IR transformation (new LLVM pass) and a runtime system to execute the transformed programs on CPU devices. COX can support the most recent CUDA features, and the application coverage is much higher (90 also show that the warp-level functions in CUDA can be efficiently executed by utilizing CPU SIMD (AVX) instructions.

READ FULL TEXT
research
06/16/2022

CuPBoP: CUDA for Parallelized and Broad-range Processors

CUDA is one of the most popular choices for GPU programming, but it can ...
research
07/01/2022

High-Performance GPU-to-CPU Transpilation and Optimization via High-Level Parallel Constructs

While parallelism remains the main source of performance, architectural ...
research
12/15/2020

AsyncTaichi: Whole-Program Optimizations for Megakernel Sparse Computation and Differentiable Programming

We present a whole-program optimization framework for the Taichi program...
research
06/03/2019

A scheme for dynamically integrating C library functions into a λProlog implementation

The Teyjus system realizes the higher-order logic programming languageλP...
research
08/03/1999

After Compilers and Operating Systems : The Third Advance in Application Support

After compilers and operating systems, TSIAs are the third advance in ap...
research
09/02/2021

Supporting CUDA for an extended RISC-V GPU architecture

With the rapid development of scientific computation, more and more rese...
research
08/09/2023

__host__ __device__ – Generic programming in Cuda

We present patterns for Cuda/C++ to write save generic code which works ...

Please sign up or login with your details

Forgot password? Click here to reset