A Rusty CUDA wrapper

Overview

cuda-oxide

cuda-oxide is a safe wrapper for CUDA. With cuda-oxide you can execute and coordinate CUDA kernels.

Safety Philosophy

cuda-oxide does not offer any safety on the GPU-side of writing CUDA code. It doesn't compile Rust to PTX. cuda-oxide offers general CPU-level safety working with the CUDA library and best-availability safety for working with GPU buffers and objects.

Examples of things currently considered safe:

  • Reading from an uninitialized GPU buffer into host memory
  • Some invalid libcuda operations that will cause libcuda to stop accepting any API calls
  • Setting various attributes that can have side effects for an entire device
  • Writing to read-only device memory

Supported Features

  • Device Management
  • Context Management
  • Module Management
  • JIT compilation of Modules
  • Stream Management
  • Kernel Execution
  • Device Memory read/write

Unsupported Features

  • Memory Pools
  • Unified Addressing
  • Events & Stream Events
  • Stream State Polling
  • Stream Graph Capturing
  • Stream Batch Memory Operations
  • External Memory
  • Multi-device helper (possible already, but not made easy)
  • Graphs
  • Textures & Surfaces
  • OpenGL/VDPAU/EGL Interoperability

Examples

See the examples directory for usage examples.

You might also like...
Asynchronous CUDA, NPP and TensorRT for Rust.

Asynchronous CUDA, NPP and TensorRT ℹ️ Introduction The async-cuda family of libraries is an experimental set of libraries for interacting with the GP

Doing advent of code with CUDA and rust.

advent-of-cuda I want to get better at writing cuda kernels so I plan on doing advent of code with cuda. You can follow along here. This for advent of

Rusty Object Notation

Rusty Object Notation RON is a simple readable data serialization format that looks similar to Rust syntax. It's designed to support all of Serde's da

A rusty dynamically typed scripting language
A rusty dynamically typed scripting language

dyon A rusty dynamically typed scripting language Tutorial Dyon-Interactive Dyon Snippets /r/dyon Dyon script files end with .dyon. To run Dyon script

RDFM - The Rusty DotFiles Manager

d8888b. d88888b. 8888888b 8888b d8888 88 `8D 88 `8D 88' 88'YbdP`88 88oobY' 88 88

 rusty-donut - ASCII raymarching inside a terminal
rusty-donut - ASCII raymarching inside a terminal

ASCII raymarching inside a terminal

A rusty, dual-wielding Quake and Half-Life texture WAD parser.

Ogre   A rusty, dual-wielding Quake and Half-Life texture WAD parser ogre is a rust representation and nom parser for Quake and Half-Life WAD files. I

Rusty NuGet client

ruget It's a NuGet client built in Rust. It's not really meant to replace existing nuget clients. It's more of a playground for experimenting with rel

Rusty NuGet client

turron It's a NuGet client built in Rust. It's not really meant to replace existing nuget clients. It's more of a playground for experimenting with re

Rusty Armor Builds - Monster Hunter Rise Armor Set Creation Tool
Rusty Armor Builds - Monster Hunter Rise Armor Set Creation Tool

RAB Rusty Armor Builds - Monster Hunter Rise Armor Set Creation Tool Armor files used by RAB

Sombervale, a Rusty Jam 2021 game
Sombervale, a Rusty Jam 2021 game

Sombervale Made in 7 days for Rusty Jam 2021. About It is dark and spooky in Sombervale park. There are shadow creatures all around you. Run away with

Rusty Ray Tracer

rtrtr - Rusty Ray Tracer Cameron Christensen - Fall 2021 -- I started this both to brush up on ray tracing and to learn Rust. For the former I've been

A rusty, spiky, heat-seeking quake map parser.

Shalrath   A rusty, spiky, heat-seeking quake map parser shalrath is a rust representation, [nom] parser and string serializer for Quake map files. It

⌚ A command-line tool (and library) for the rusty Swatch Internet Time.

⌚ A command-line tool (and library) for the rusty Swatch Internet Time. Comes with XBar/Swiftbar support.

🦀 My Rusty Playground

rust playground A language empowering everyone to build reliable and efficient software. Resources The Book Rustlings Rust by Example Take your first

🎄 My Rusty Solutions to AOC 2021

🎄 Advent-Of-Code-2021 My Rusty Solutions to Advent Of Code 2021 Day 01: Sonar Sweep [A, B] Day 02: Dive! [A, B] Day 03: Binary Diagnostic [A, B] Day

Rusty Hog is a secret scanner built in Rust for performance, and based on TruffleHog which is written in Python.
Rusty Hog is a secret scanner built in Rust for performance, and based on TruffleHog which is written in Python.

Rusty Hog is a secret scanner built in Rust for performance, and based on TruffleHog which is written in Python. Rusty Hog provides the following bina

A Rust API for Vega-Lite V4 to build chart with a rusty API.
A Rust API for Vega-Lite V4 to build chart with a rusty API.

Vega-Lite V4 for Rust A Rust API for Vega-Lite V4 to build chart with a rusty API. Similar to the Altair project in python, this crate build upon Vega

A highly modular Bitcoin Lightning library written in Rust. Its Rust-Lightning, not Rusty's Lightning!

Rust-Lightning is a Bitcoin Lightning library written in Rust. The main crate, lightning, does not handle networking, persistence, or any other I/O. Thus, it is runtime-agnostic, but users must implement basic networking logic, chain interactions, and disk storage. More information is available in the About section.

Owner
Max Bruce
General enthusiast of everything code.
Max Bruce
Asynchronous CUDA, NPP and TensorRT for Rust.

Asynchronous CUDA, NPP and TensorRT ℹ️ Introduction The async-cuda family of libraries is an experimental set of libraries for interacting with the GP

Oddity.ai 4 Jun 19, 2023
BURN: Burn Unstoppable Rusty Neurons

BURN BURN: Burn Unstoppable Rusty Neurons This library aims to be a complete deep learning framework with extreme flexibility written in Rust. The goa

Nathaniel Simard 730 Dec 26, 2022
Rust wrapper for the Fast Artificial Neural Network library

fann-rs Rust wrapper for the Fast Artificial Neural Network (FANN) library. This crate provides a safe interface to FANN on top of the low-level bindi

Andreas Fackler 12 Jul 17, 2022
Wrapper around Microsoft CNTK library

Bindings for CNTK library Simple low level bindings for CNTK library from Microsoft. API Documentation Status Currently exploring ways how to interact

Vlado Boza 21 Nov 30, 2021
A safe Rust wrapper around a subset of cuFFT.

cufft_rust This is a safe Rust wrapper around CUDA FFT (cuFFT). It only supports a subset of the API which I need for private projects. For now this o

Pim van den Berg 1 Jan 11, 2022
Rust-port of spotify/annoy as a wrapper for Approximate Nearest Neighbors in C++/Python optimized for memory usage.

Rust-port of spotify/annoy as a wrapper for Approximate Nearest Neighbors in C++/Python optimized for memory usage.

Arthur·Thomas 13 Mar 10, 2022
Rust-port of spotify/annoy as a wrapper for Approximate Nearest Neighbors in C++/Python optimized for memory usage.

Fareast This library is a rust port of spotify/annoy , currently only index serving is supported. It also provides FFI bindings for jvm, dotnet and da

Arthur·Thomas 13 Mar 10, 2022
A game made for the Rusty Jam https://itch.io/jam/rusty-jam

Murder-User Dungeon Introduction Tony is a young man. Finally having its own apartment is a good thing! He will learn how to live by himself and how t

null 62 Dec 6, 2022
Extendable HPC-Framework for CUDA, OpenCL and common CPU

Collenchyma • Collenchyma is an extensible, pluggable, backend-agnostic framework for parallel, high-performance computations on CUDA, OpenCL and comm

Autumn 460 Oct 31, 2022
LLaMa 7b with CUDA acceleration implemented in rust. Minimal GPU memory needed!

LLaMa 7b in rust This repo contains the popular LLaMa 7b language model, fully implemented in the rust programming language! Uses dfdx tensors and CUD

Corey Lowman 16 May 8, 2023