Page Summary
-
This project aims to create comprehensive documentation, including tutorials and examples, to facilitate GPU programming in Julia.
-
The documentation will cover topics such as introductory guides, profiling, debugging, and specific use cases like Mandelbrot set generation and parallel prefix scan computation.
-
While focusing on CUDA.jl, the project is designed to be adaptable to other GPU platforms like AMD ROCm and Intel GPUs in the future.
-
The tutorials and examples will be housed in a dedicated section on the juliagpu.org website.
-
The project is part of Google Season of Docs and will be conducted over a standard three-month period.
This page contains the details of a technical writing project accepted for Google Season of Docs.
Project summary
- Open source organization:
- The Julia Language
- Technical writer:
- Ellipse0934
- Project name:
- Documentation for the JuliaGPU stack
- Project length:
- Standard length (3 months)
Project description
The primary purpose of this project is to develop documentation rich with tutorials and examples to help developers get started with GPU programming in Julia. Unfortunately, there aren't many resources for GPU programming, and being a relatively complex topic it gets difficult for the learner. To use a GPU effectively not only must a user know how to use it but also understand how it works
This project can be split into three parts (not proportional to time)
Tutorials: Detailed guides for the beginner to help them get started, profile and debug their code.
Examples: Write simple extensions to various Julia packages such as Images.jl, SciML.jl,etc.
API Documentation: Restructure and write documentation to make it intuitive for the user to browse
through the documentation.
While this project focuses on CUDA.jl it shouldn't matter since to a large extent Julia's GPU stack is going to be platform agnostic so in the future when the AMD's ROCm stack is completed and the Intel GPUs arive there won't be much effort required to port the Tutorials and Examples of this project.
The tutorials and examples are proposed to go in a dedicated section at the juliagpu.org website. Some topics which will be covered in the tutorial section are:
Introduction (small rework)
Mandelbrot : A program to generate an image of the mandelbrot set
Prefix Scan: Computing the parallel prefix scan on the GPU
How does a GPU work ? (language agnostic, discusses the architecture)
Array Programming: Using high level array programming abstractions for GPU programming (Broadcast abstractions, custom array types,.etc)
Profiling GPU applications (using Nsight and other tools)