The Julia Language project
Stay organized with collections
Save and categorize content based on your preferences.
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)
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2024-11-08 UTC.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2024-11-08 UTC."],[[["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."]]],["The core of this project involves creating comprehensive documentation for GPU programming in Julia, primarily focusing on CUDA.jl. It's structured into three parts: tutorials for beginners on topics like GPU architecture, profiling, and array programming; practical examples that extend existing Julia packages; and restructuring the API documentation for improved user experience. The project aims for platform-agnostic content, ensuring future compatibility with AMD and Intel GPUs. All resources will be hosted on the juliagpu.org website.\n"]]