File: gpu_roadmap.md.txt

package info (click to toggle)
petsc 3.24.1%2Bdfsg1-1exp1
  • links: PTS, VCS
  • area: main
  • in suites: experimental
  • size: 524,004 kB
  • sloc: ansic: 762,842; cpp: 52,564; python: 39,546; f90: 17,688; javascript: 3,493; makefile: 3,206; sh: 1,508; xml: 619; objc: 445; java: 13; csh: 1
file content (74 lines) | stat: -rw-r--r-- 2,247 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
(doc_gpu_roadmap)=

# GPU Support Roadmap

PETSc algebraic solvers run on GPU systems from NVIDIA using CUDA, and AMD and Intel using
OpenCL/ViennaCL and HIP. Effective GPU implementations of low-level linear algebra
operations provide a highly performant alternative solution strategy for users, and is
therefore a high priority for PETSc developers.

See FAQ {ref}`topic <doc_faq_gpuhowto>` which shows how to enable GPU backends.

:::{note}
PETSc uses a single source programming model where solver back-ends are selected as
**runtime** options and configuration options with no changes to the API.

Users should (ideally) never have to change their source code to take advantage of new
backend implementations.
:::

PETSc code will include full implementations of vector and matrix operations (as well as
other select operations) using each of:

```{eval-rst}
.. list-table::
   :widths: auto
   :header-rows: 1

   * - Programming Model
     - Supporting Package
     - ``Vec`` Status
     - ``Mat`` Status
     - Supported GPU types
   * - CUDA
     - cuBLAS/cuSparse
     - SUPPORTED
     - SUPPORTED
     - NVIDIA GPUs
   * - HIP
     - Rocm
     - SUPPORTED
     - IN DEVELOPMENT
     - AMD GPUs
   * - SYCL
     - MKL
     - NOT YET SUPPORTED
     - NOT YET SUPPORTED
     - NOT YET SUPPORTED
   * - OpenCL
     - ViennaCL
     - SUPPORTED
     - SUPPORTED
     - NVIDIA, AMD, Intel GPUs
   * - Kokkos
     - Kokkos and Kokkos-Kernels
     - SUPPORTED
     - SUPPORTED
     - NVIDIA, AMD, Intel GPUs
```

______________________________________________________________________

Basic linear algebra GPU implementations enable many solvers, including `GAMG` and
`BDDC`, to run entirely on the GPU. PETSc is currently adding GPU support for residual
and Jacobian creation and for matrix assembly extensions to `MATAIJCUSPARSE` and
`MATAIJKOKKOS`. **This is work in progress**.

:::{important}
:class: yellow

We could use your help in further developing PETSc for GPUs; see PETSc Developers
{ref}`documentation <ind_developers>`. The label `GPU` is used on our [GitLab](https://gitlab.com/petsc/petsc) repository for all activity involving GPUs.

**You should use PETSc main (Git branch) for GPUs, do not install the current release.**
:::