This page contains the details of a technical writing project accepted for Season of Docs.
- Open source organization:
- The Julia Language
- Technical writer:
- Project name:
- Documentation for the JuliaGPU stack
- Project length:
- Standard length (3 months)
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)