Ta strona zawiera szczegóły projektu technicznego do pisania w sezonie Dokumentów Google.
Podsumowanie projektu
- Organizacja open source:
- Język Julia
- Pisarz techniczny:
- Ellipse0934
- Nazwa projektu:
- Dokumentacja stosu JuliaGPU
- Długość projektu:
- Standardowa długość (3 miesiące)
Opis projektu
Głównym celem tego projektu jest opracowanie dokumentacji z samouczkami i przykładami, która pomoże deweloperom rozpocząć programowanie na procesorze graficznym w Julia. Niestety nie ma zbyt wielu materiałów dotyczących programowania na GPU, a temat ten jest dość złożony, więc może być trudny dla uczących się. Aby efektywnie korzystać z procesora graficznego, użytkownik musi nie tylko wiedzieć, jak go używać, ale też rozumieć, jak działa.
Ten projekt można podzielić na 3 części (nieproporcjonalne do czasu).
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.
Chociaż ten projekt koncentruje się na CUDA.jl, nie powinno to mieć znaczenia, ponieważ pakiet GPU w języku Julia będzie w dużej mierze niezależny od platformy. W przyszłości, gdy pakiet ROCm firmy AMD zostanie ukończony, a na rynku pojawią się karty graficzne Intela, nie będzie trzeba wiele wysiłku poświęcać na przenoszenie samouczków i przykładów z tego projektu.
Proponujemy umieszczenie samouczków i przykładów w specjalnej sekcji na stronie juliagpu.org. Oto niektóre z tematów, które znajdziesz w sekcji samouczka:
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)