3 ms·
It solves a fundamentally different problem, AFAIK - it emits CUDA kernels which are then just handed to the driver's interface for copying and running CUDA ker
by rincebrain 11y ago
It solves a fundamentally different problem, AFAIK - it emits CUDA kernels which are then just handed to the driver's interface for copying and running CUDA kernels on the GPU, so if your GPU doesn't support it, they'd need to change the LLVM backend to emit something other than a CUDA kernel (OpenCL, I suppose?).
- fulafel 11y agoIt compiles CUDA (a C++ like language) using LLVM down to host ISA (x86) and virtual low-level NV virtual assembly (SASS/PTX). Only translation from virtual assembly to model-specific GPU assembly is left to closed-source NV code. For AMD porting you could possibly use http://llvm.org/docs/AMDGPUUsage.html http://llvm.org/docs/AMDGPUUsage.html
- elbows 11y agoAccording to the video, they have an a runtime library (StreamExecutor) which abstracts over CUDA and OpenCL. That seems like the hard part to me. Switching out the LLVM backend for kernels ought to be relatively easy.