The Julia Language project

This page contains the details of a technical writing project accepted for 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)