Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/jxtngx/cuda-lab
simple CUDA kernels and Python bindings
https://github.com/jxtngx/cuda-lab
artificial-intelligence cpp cuda deep-learning machine-learning neural-networks python
Last synced: 20 days ago
JSON representation
simple CUDA kernels and Python bindings
- Host: GitHub
- URL: https://github.com/jxtngx/cuda-lab
- Owner: jxtngx
- License: apache-2.0
- Created: 2024-10-31T11:08:19.000Z (4 months ago)
- Default Branch: main
- Last Pushed: 2024-11-06T16:35:24.000Z (3 months ago)
- Last Synced: 2024-12-06T10:36:49.977Z (2 months ago)
- Topics: artificial-intelligence, cpp, cuda, deep-learning, machine-learning, neural-networks, python
- Homepage:
- Size: 7.81 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# CUDA Lab
This project introduces concepts of high performance computing (HPC) for artificial intelligence (AI) by leveraging C++ and Python.
Primary goals of the repo are:
1. to design and implement a simple CUDA/C++ kernel
2. to design and implement Python bindings for that kernel
3. to use the Python interface and test against benchmarksAccomplishing these goals will aid in understanding the code bases of [CUDA Python](https://github.com/NVIDIA/cuda-python) and PyTorch, along with enabling next-steps in more advanced techniques.
Secondary goals of the repo are:
1. to introduce Python interfaces for CUDA kernels
2. to introduce multi-language design concepts
2. to introduce multi-language code quality conceptsAccomplishing these goals will aid in preparing to contribute to [CUDA Python](https://github.com/NVIDIA/cuda-python) and PyTorch, and other such libraries which use CUDA/C++ and Python.
In summary, the general goal of the repo is to create a C++ and Python program for an AI application, while adhering to software engineering best practices.
## Requisite background
While not required, a basic understanding of C++ and Python will be useful to understand the syntax and control flow of both programming languages.
## Supporting materials and inspiration
1. Mathematics for Machine Learning, by Deisenroth et al
2. Programming Massively Parallel Processors, by Hwu et al
3. Python docs
4. CUDA docs
5. PyTorch code base
6. [CUDA Python](https://github.com/NVIDIA/cuda-python) code base
7. [An Even Easier Introduction to CUDA](https://developer.nvidia.com/blog/even-easier-introduction-cuda/), by Mark Harris
8. [How to Optimize a CUDA Matmul Kernel](https://siboehm.com/articles/22/CUDA-MMM), by Simon Boehm