404: File not found
+The requested file was not found.
+Please click here to go to the home page.
+ +diff --git a/previews/PR43/.nojekyll b/previews/PR43/.nojekyll new file mode 100644 index 0000000..e69de29 diff --git a/previews/PR43/2019-12-12-new_site/index.html b/previews/PR43/2019-12-12-new_site/index.html new file mode 100644 index 0000000..a4a116c --- /dev/null +++ b/previews/PR43/2019-12-12-new_site/index.html @@ -0,0 +1,7 @@ + + + +
+ + + diff --git a/previews/PR43/2020-03-25-cudanative_3.0-cuarrays_2.0/index.html b/previews/PR43/2020-03-25-cudanative_3.0-cuarrays_2.0/index.html new file mode 100644 index 0000000..475c924 --- /dev/null +++ b/previews/PR43/2020-03-25-cudanative_3.0-cuarrays_2.0/index.html @@ -0,0 +1,7 @@ + + + + + + + diff --git a/previews/PR43/2020-07-07-cuda_1.1/index.html b/previews/PR43/2020-07-07-cuda_1.1/index.html new file mode 100644 index 0000000..b8c1d20 --- /dev/null +++ b/previews/PR43/2020-07-07-cuda_1.1/index.html @@ -0,0 +1,7 @@ + + + + + + + diff --git a/previews/PR43/2020-07-18-cuda_1.3/index.html b/previews/PR43/2020-07-18-cuda_1.3/index.html new file mode 100644 index 0000000..715d546 --- /dev/null +++ b/previews/PR43/2020-07-18-cuda_1.3/index.html @@ -0,0 +1,7 @@ + + + + + + + diff --git a/previews/PR43/2020-09-28-gemmkernels/index.html b/previews/PR43/2020-09-28-gemmkernels/index.html new file mode 100644 index 0000000..f03c847 --- /dev/null +++ b/previews/PR43/2020-09-28-gemmkernels/index.html @@ -0,0 +1,7 @@ + + + + + + + diff --git a/previews/PR43/2020-10-02-cuda_2.0/index.html b/previews/PR43/2020-10-02-cuda_2.0/index.html new file mode 100644 index 0000000..df6d13c --- /dev/null +++ b/previews/PR43/2020-10-02-cuda_2.0/index.html @@ -0,0 +1,7 @@ + + + + + + + diff --git a/previews/PR43/2020-10-30-cuda_2.1/index.html b/previews/PR43/2020-10-30-cuda_2.1/index.html new file mode 100644 index 0000000..8da8c8b --- /dev/null +++ b/previews/PR43/2020-10-30-cuda_2.1/index.html @@ -0,0 +1,7 @@ + + + + + + + diff --git a/previews/PR43/2020-11-05-oneapi_0.1/index.html b/previews/PR43/2020-11-05-oneapi_0.1/index.html new file mode 100644 index 0000000..1496d8e --- /dev/null +++ b/previews/PR43/2020-11-05-oneapi_0.1/index.html @@ -0,0 +1,7 @@ + + + + + + + diff --git a/previews/PR43/2021-01-08-cuda_2.4_2.5/index.html b/previews/PR43/2021-01-08-cuda_2.4_2.5/index.html new file mode 100644 index 0000000..ddc39b3 --- /dev/null +++ b/previews/PR43/2021-01-08-cuda_2.4_2.5/index.html @@ -0,0 +1,7 @@ + + + + + + + diff --git a/previews/PR43/2021-04-09-cuda_3.0/index.html b/previews/PR43/2021-04-09-cuda_3.0/index.html new file mode 100644 index 0000000..e7a8654 --- /dev/null +++ b/previews/PR43/2021-04-09-cuda_3.0/index.html @@ -0,0 +1,7 @@ + + + + + + + diff --git a/previews/PR43/2021-06-10-cuda_3.3/index.html b/previews/PR43/2021-06-10-cuda_3.3/index.html new file mode 100644 index 0000000..a3c375b --- /dev/null +++ b/previews/PR43/2021-06-10-cuda_3.3/index.html @@ -0,0 +1,7 @@ + + + + + + + diff --git a/previews/PR43/2021-08-13-cuda_3.4/index.html b/previews/PR43/2021-08-13-cuda_3.4/index.html new file mode 100644 index 0000000..a634228 --- /dev/null +++ b/previews/PR43/2021-08-13-cuda_3.4/index.html @@ -0,0 +1,7 @@ + + + + + + + diff --git a/previews/PR43/2022-01-28-cuda_3.5_3.8/index.html b/previews/PR43/2022-01-28-cuda_3.5_3.8/index.html new file mode 100644 index 0000000..a369335 --- /dev/null +++ b/previews/PR43/2022-01-28-cuda_3.5_3.8/index.html @@ -0,0 +1,7 @@ + + + + + + + diff --git a/previews/PR43/2022-04-06-oneapi_update/index.html b/previews/PR43/2022-04-06-oneapi_update/index.html new file mode 100644 index 0000000..c945cfa --- /dev/null +++ b/previews/PR43/2022-04-06-oneapi_update/index.html @@ -0,0 +1,7 @@ + + + + + + + diff --git a/previews/PR43/2022-06-24-metal/index.html b/previews/PR43/2022-06-24-metal/index.html new file mode 100644 index 0000000..ec8b3ad --- /dev/null +++ b/previews/PR43/2022-06-24-metal/index.html @@ -0,0 +1,7 @@ + + + + + + + diff --git a/previews/PR43/2023-02-01-cuda_4.0/index.html b/previews/PR43/2023-02-01-cuda_4.0/index.html new file mode 100644 index 0000000..0475ead --- /dev/null +++ b/previews/PR43/2023-02-01-cuda_4.0/index.html @@ -0,0 +1,7 @@ + + + + + + + diff --git a/previews/PR43/2023-02-08-oneapi_1.0/index.html b/previews/PR43/2023-02-08-oneapi_1.0/index.html new file mode 100644 index 0000000..00b2bce --- /dev/null +++ b/previews/PR43/2023-02-08-oneapi_1.0/index.html @@ -0,0 +1,7 @@ + + + + + + + diff --git a/previews/PR43/2023-03-03-metal_0.2/index.html b/previews/PR43/2023-03-03-metal_0.2/index.html new file mode 100644 index 0000000..124d964 --- /dev/null +++ b/previews/PR43/2023-03-03-metal_0.2/index.html @@ -0,0 +1,7 @@ + + + + + + + diff --git a/previews/PR43/2023-07-19-oneapi_profiling/index.html b/previews/PR43/2023-07-19-oneapi_profiling/index.html new file mode 100644 index 0000000..edf8e22 --- /dev/null +++ b/previews/PR43/2023-07-19-oneapi_profiling/index.html @@ -0,0 +1,7 @@ + + + + + + + diff --git a/previews/PR43/2023-09-19-cuda_5.0/index.html b/previews/PR43/2023-09-19-cuda_5.0/index.html new file mode 100644 index 0000000..ae124bb --- /dev/null +++ b/previews/PR43/2023-09-19-cuda_5.0/index.html @@ -0,0 +1,7 @@ + + + + + + + diff --git a/previews/PR43/2023-11-07-cuda_5.1/index.html b/previews/PR43/2023-11-07-cuda_5.1/index.html new file mode 100644 index 0000000..4d1ba7a --- /dev/null +++ b/previews/PR43/2023-11-07-cuda_5.1/index.html @@ -0,0 +1,7 @@ + + + + + + + diff --git a/previews/PR43/2024-04-26-cuda_5.2_5.3/index.html b/previews/PR43/2024-04-26-cuda_5.2_5.3/index.html new file mode 100644 index 0000000..13f6e34 --- /dev/null +++ b/previews/PR43/2024-04-26-cuda_5.2_5.3/index.html @@ -0,0 +1,7 @@ + + + + + + + diff --git a/previews/PR43/2024-05-24-oneapi_1.5/index.html b/previews/PR43/2024-05-24-oneapi_1.5/index.html new file mode 100644 index 0000000..1b151a8 --- /dev/null +++ b/previews/PR43/2024-05-24-oneapi_1.5/index.html @@ -0,0 +1,7 @@ + + + + + + + diff --git a/previews/PR43/404.html b/previews/PR43/404.html new file mode 100644 index 0000000..b6484ef --- /dev/null +++ b/previews/PR43/404.html @@ -0,0 +1,169 @@ + + + + + + + + + + + + + + + + + + +The requested file was not found.
+Please click here to go to the home page.
+ +The programming support for NVIDIA GPUs in Julia is provided by the CUDA.jl package. It is built on the CUDA toolkit, and aims to be as full-featured and offer the same performance as CUDA C. The toolchain is mature, has been under development since 2014 and can easily be installed on any current version of Julia using the integrated package manager.
+CUDA.jl makes it possible to program NVIDIA GPUs at different abstraction levels:
+by using the CuArray
type, providing a user-friendly yet powerful abstraction that does not require any GPU programming experience;
by writing CUDA kernels, with the same performance as kernels written in CUDA C;
+by interfacing with CUDA APIs and libraries directly, offering the same level of flexibility you would expect from a C-based programming environment.
+The documentation of CUDA.jl demonstrates each of these approaches.
+Julia on the CPU is known for its good performance, approaching that of statically compiled languages like C. The same holds for programming NVIDIA GPUs with kernels written using CUDA.jl, where we have shown the performance to approach and even sometimes exceed that of CUDA C on a selection[1] of applications from the Rodinia benchmark suite:
+ ++ Relative performance of Rodinia benchmarks implemented in Julia with CUDA.jl. +
+[1] | +Since porting applications from one programming language to another is labour | +
+ High-performance GPU programming in a high-level language. +
+JuliaGPU is a Github organization created to unify the many packages for programming GPUs in Julia. With its high-level syntax and flexible compiler, Julia is well positioned to productively program hardware accelerators like GPUs without sacrificing performance.
+Several GPU platforms are supported, but there are large differences in features and stability. On this website, you can find a brief introduction of the supported platforms and links to the respective home pages.
+ + +The best supported GPU platform in Julia is NVIDIA CUDA, with mature and full-featured packages for both low-level kernel programming as well as working with high-level operations on arrays. All versions of Julia are supported, on Linux and Windows, and the functionality is actively used by a variety of applications and libraries.
+Similar, but much newer capabilities exist for Intel GPUs with oneAPI. Currently, full-featured kernel programming capabilities are available, but there is no support for vendor libraries such as oneMKL or oneDNN yet.
+Maturing support exists for AMD GPUs running on the ROCm stack. These GPUs can again be programmed in Julia at the kernel level or using high-level operations on arrays. Latest versions of Julia are supported, and the functionality is increasingly used by a variety of applications and libraries.
+Experimental support also exists for Apple GPUs. Array programming and kernel programming are both supported.
+Almost 300 packages rely directly or indirectly on Julia's GPU capabilities. A few noteworthy examples are:
+DiffEqGPU.jl as part of the DifferentialEquations.jl ecosystem, for using GPUs in differential equation solvers
+Flux.jl library for machine-learning
+Oceananigans.jl to accelerate a non-hydrostatic ocean modeling application
+Yao.jl framework for quantum information research
+KernelAbstractions.jl for working with CPUs and GPUs alike using vendor-neutral abstractions
+GemmKernels.jl providing flexible and performant GEMM kernels
+Many other Julia applications and libraries can be used with GPUs, too: By means of GPU-specific array types like CuArray from CUDA.jl or ROCArray from AMDGPU.jl, existing software that uses the Julia array interfaces can often be executed as-is on a GPU.
+Much of Julia's GPU support was developed as part of academic research. If you would like to help support it, please star the relevant repositories as such metrics may help us secure funding in the future. If you use our software as part of your research, teaching, or other activities, we would be grateful if you could cite our work:
+Tim Besard, Christophe Foket, and Bjorn De Sutter. "Effective extensible programming: Unleashing Julia on GPUs." IEEE Transactions on Parallel and Distributed Systems (2018).
+Tim Besard, Valentin Churavy, Alan Edelman and Bjorn De Sutter. "Rapid software prototyping for heterogeneous and distributed platforms." Advances in Engineering Software (2019).
+Thomas Faingnaert, Tim Besard, and Bjorn De Sutter. "Flexible Performant GEMM Kernels on GPUs." IEEE Transactions on Parallel and Distributed Systems (2021).
+If you need help, or have questions about GPU programming in Julia, you can find members of the community at:
+Julia Discourse, with a dedicated GPU section
+Julia Slack (register here), on the #gpu channel
+Currently, the Julia CUDA stack is the most mature, easiest to install, and full-featured. The CUDA.jl documentation is a central place for information on all relevant packages. Start with the instructions on how to install the stack, and follow with this introductory tutorial.
+If you prefer videos, the presentations below highlight different aspects of the toolchain.
+Introduction to concurrent GPU computing:
+Overlapping GPU computations
+Using multiple devices
+Using threads
+Design and benefits of the Julia GPU stack
+Composability with existing (non-GPU) software
+Performance killers and tools for optimization
+Demonstration
+