Jupyter notebook plugin to run CUDA C/C++ code
Project description
nvcc4jupyter: CUDA C++ plugin for Jupyter Notebook
Testing | |
Code Quality | |
Package |
nvcc4jupyter is a Jupyter Notebook plugin that provides cell and line magics to allow running CUDA C++ code from a notebook. This is especially useful when combined with a hosted service such a Google's Colab which provide CUDA capable GPUs and you can start learning CUDA C++ without having to install anything or even to own a GPU yourself.
Table of Contents
Main Features
Here are just a few of the things that nvcc4jupyter does well:
- Easily run CUDA C++ code
- Profile your code with NVIDIA Nsight Compute or Nsight Systems
- Compile your code with external libraries (e.g. OpenCV)
- Share code between different programs in the same notebook / split your code into multiple files for improved readability
Install
The installer for the latest released version is available at the Python Package Index (PyPI).
pip install nvcc4jupyter
Usage
First, load the extension to enable the magic commands:
%load_ext nvcc4jupyter
Running a quick CUDA Hello World program:
%%cuda
#include <stdio.h>
__global__ void hello(){
printf("Hello from block: %u, thread: %u\n", blockIdx.x, threadIdx.x);
}
int main(){
hello<<<2, 2>>>();
cudaDeviceSynchronize();
}
For more advanced use cases, see the documentation.
Documentation
The official documentation is hosted on readthedocs.
License
Contributing
The recommended setup for development is using the devcontainer in GitHub Codespaces or locally in VSCode.
If not using the devcontainer you need to install the package with the development dependencies and install the pre-commit hook before commiting any changes:
pip install -e .[dev]
pre-commit install
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for nvcc4jupyter-1.2.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4bbc71ae6f58940e713435e47d01f445cd32bbd97f6535216d51b147c07d7d08 |
|
MD5 | 483cd7a6c7c75ae51fd02d905bea47ac |
|
BLAKE2b-256 | 7d404bb924b0cd9bafea611d4dd36ca383f43a889eb8c5b27df88147152817ca |