Le projet Julia Language

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)