Il progetto Julia Language

Questa pagina contiene i dettagli di un progetto di documentazione tecnica accettato per la stagione della documentazione di Google.

Riepilogo progetto

Organizzazione open source:
La lingua giuliana
Redattore tecnico:
Ellipse0934
Nome del progetto:
Documentazione per lo stack JuliaGPU
Durata del progetto:
Durata standard (3 mesi)

Project description

Lo scopo principale di questo progetto è sviluppare una documentazione ricca di tutorial ed esempi per aiutare gli sviluppatori a iniziare a utilizzare la programmazione GPU in Julia. Purtroppo, non ci sono molte risorse per la programmazione GPU e, trattandosi di un argomento relativamente complesso, può essere difficile per l'apprendente. Per utilizzare una GPU in modo efficace, un utente deve non solo sapere come utilizzarla, ma anche capire come funziona

Questo progetto può essere suddiviso in tre parti (non proporzionali al tempo)

 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.

Sebbene questo progetto si concentri su CUDA.jl, non dovrebbe importare perché, in larga misura, lo stack GPU di Julia sarà indipendente dalla piattaforma, quindi in futuro, quando lo stack ROCm di AMD sarà completato e le GPU Intel arriveranno, non sarà necessario molto impegno per eseguire il porting dei tutorial e degli esempi di questo progetto.

I tutorial e gli esempi vengono proposti in una sezione dedicata sul sito web juliagpu.org. Nella sezione del tutorial verranno trattati alcuni argomenti:

 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)