Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

gouda : cross platform cuda compatible compiler

number of downloads

build status

Gouda Compiler

A drop-in replacement for nvcc. Take your existing CUDA Cpp programs, and recompile them to target your other hardware. CPU / OpenCL and more.

Read more about the gouda compiler on the web

While we'd like to eventually achieve CUDA like performance on other devices, we're currently focused on improving support for special CUDA C features and expanding backend support.

In its current form, it is primarily useful for experimenting with parallel programming on non-CUDA hardware.

Installation

Our initial releases are in binary form only. Visit the releases to find the compiler for your host system.

We also have an installer script which should detect your platform and install the latest release:

# Installer from https://github.org/goudalang/gouda_installer/
curl -fsSl https://gouda-lang.org/install.sh -O && bash ./install.sh

Getting Started:

We have several interesting demos in our demos directory. These include both standard C as well as parallel implementations which use Gouda. Most are visual/graphics demo, so you can get a feel for the speedup possible by using Gouda.

Usage:

$ gouda --backend opencl matmul.cu -o matmul_cl
$ ./matmul_cl
# examine the generated source code, useful for integrating into larger projects.
$ cat tmp.cc

Backends:

  • opencl
  • serial (single-threaded, useful for unit testing or development)

Open an issue or contact us to sponsor a new backend.

LLM Disclaimer

ChatGPT was used for the logo, all other core code was hand written. LLMs may be used for some of the demo projects.

About

Gouda is a CUDA transpiler. Take your CUDA C programs and recompile for OpenCL and more.

Topics

Resources

Stars

5 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors