Difference between revisions of "GPU Tutorial/Julia"
GPU Tutorial/Julia
Jump to navigation
Jump to search
m |
m |
||
| (3 intermediate revisions by the same user not shown) | |||
| Line 5: | Line 5: | ||
This video discusses the SAXPY via Julia and CUDA.jl. | This video discusses the SAXPY via Julia and CUDA.jl. | ||
| + | The CUDA.jl package is the main programming interface for working with NVIDIA CUDA GPUs using Julia. It features a user-friendly array abstraction, a compiler for writing CUDA kernels in Julia, and wrappers for various CUDA libraries. | ||
=== Video === <!--T:5--> | === Video === <!--T:5--> | ||
| + | |||
| + | <youtube width="600" height="340" right>6pYUhi5zhPE</youtube> | ||
([[Media:GPU_tutorial_saxpy_julia.pdf |Slides as pdf]]) | ([[Media:GPU_tutorial_saxpy_julia.pdf |Slides as pdf]]) | ||
=== Quiz === <!--T:5--> | === Quiz === <!--T:5--> | ||
| + | {{hidden begin | ||
| + | |title = 1. How do you transfer an array called x_cpu to the GPU memory?}} | ||
| + | <quiz display=simple> | ||
| + | { | ||
| + | |type="()"} | ||
| + | - x_gpu = CudaMalloc(x_cpu) | ||
| + | || That's CUDA C! | ||
| + | + x_gpu = CuArray(x_cpu) | ||
| + | || Correct | ||
| + | - Julia just does that for you. | ||
| + | || Sadly, no. | ||
| + | </quiz> | ||
| + | {{hidden end}} | ||
| + | |||
| + | {{hidden begin | ||
| + | |title = 2. How do you call a kernel function called gpu_kernel?}} | ||
| + | <quiz display=simple> | ||
| + | { | ||
| + | |type="()"} | ||
| + | - gpu_kernel() | ||
| + | || No | ||
| + | - CUDA.launch(gpu_kernel()) | ||
| + | || No | ||
| + | + CUDA.@sync @cuda(threads=nthreads, blocks=nblocks, gpu_kernel()) | ||
| + | || Correct | ||
| + | - CUDA.parallelize(@auto) @cuda<<<nthreads, nblocks>>>gpu_kernel() | ||
| + | || Correct | ||
| + | </quiz> | ||
| + | {{hidden end}} | ||
Latest revision as of 16:22, 21 January 2022
| Tutorial | |
|---|---|
| Title: | Introduction to GPU Computing |
| Provider: | HPC.NRW
|
| Contact: | tutorials@hpc.nrw |
| Type: | Multi-part video |
| Topic Area: | GPU computing |
| License: | CC-BY-SA |
| Syllabus
| |
| 1. Introduction | |
| 2. Several Ways to SAXPY: CUDA C/C++ | |
| 3. Several Ways to SAXPY: OpenMP | |
| 4. Several Ways to SAXPY: Julia | |
| 5. Several Ways to SAXPY: NUMBA | |
This video discusses the SAXPY via Julia and CUDA.jl. The CUDA.jl package is the main programming interface for working with NVIDIA CUDA GPUs using Julia. It features a user-friendly array abstraction, a compiler for writing CUDA kernels in Julia, and wrappers for various CUDA libraries.
Video
Quiz
1. How do you transfer an array called x_cpu to the GPU memory?
2. How do you call a kernel function called gpu_kernel?