Cette page contient les détails d'un projet de rédaction technique accepté pour la Google Season of Docs.
Résumé du projet
- Organisation Open Source:
- Langage Julia
- Rédacteur technique:
- Ellipse0934
- Nom du projet:
- Documentation sur la pile JuliaGPU
- Durée du projet:
- Durée standard (trois mois)
Project description
L'objectif principal de ce projet est de développer une documentation riche en tutoriels et en exemples pour aider les développeurs à se lancer dans la programmation GPU en Julia. Malheureusement, il n'existe pas beaucoup de ressources sur la programmation GPU. De plus, il s'agit d'un sujet relativement complexe, ce qui rend l'apprentissage difficile. Pour utiliser efficacement un GPU, un utilisateur doit non seulement savoir comment l'utiliser, mais aussi comprendre son fonctionnement.
Ce projet peut être divisé en trois parties (pas proportionnellement au temps)
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.
Bien que ce projet se concentre sur CUDA.jl, cela n'a pas d'importance, car la pile GPU de Julia sera dans une large mesure indépendante de la plate-forme. Par conséquent, à l'avenir, lorsque la pile ROCm d'AMD sera terminée et que les GPU Intel arriveront, il ne sera pas nécessaire de beaucoup d'efforts pour porter les tutoriels et les exemples de ce projet.
Les tutoriels et les exemples sont proposés dans une section dédiée sur le site Web juliagpu.org. Voici quelques-uns des sujets abordés dans la section du tutoriel:
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)