Skip to content

Commit

Permalink
Add blog post on oneAPI v1.5. (#43)
Browse files Browse the repository at this point in the history
  • Loading branch information
maleadt authored May 24, 2024
1 parent 14a50eb commit dbb9765
Showing 1 changed file with 84 additions and 0 deletions.
84 changes: 84 additions & 0 deletions post/2024-05-24-oneapi_1.5.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
+++
title = "oneAPI.jl 1.5: Ponte Vecchio support and oneMKL improvements"
author = "Tim Besard"
external = true
abstract = """
oneAPI.jl v1.5 is a significant release that brings many new features, from extended
hardware support to greatly improved wrappers of the oneMLK math library."""
+++

{{abstract}}


## Intel Ponte Vecchio

In oneAPI.jl v1.5 we introduce support for the Intel Ponte Vecchio (PVC) architecture,
which empowers the Xe HPC GPUs as found in the Aurora supercomputer:

```julia-repl
julia> oneAPI.versioninfo()
Binary dependencies:
- NEO: 24.13.29138+0
- libigc: 1.0.16510+0
- gmmlib: 22.3.18+0
- SPIRV_LLVM_Translator_unified: 0.4.0+0
- SPIRV_Tools: 2023.2.0+0
Toolchain:
- Julia: 1.10.3
- LLVM: 15.0.7
1 driver:
- 00000000-0000-0000-17d2-6b1e010371d2 (v1.3.29138, API v1.3.0)
16 devices:
- Intel(R) Data Center GPU Max 1550
- Intel(R) Data Center GPU Max 1550
- Intel(R) Data Center GPU Max 1550
- Intel(R) Data Center GPU Max 1550
- Intel(R) Data Center GPU Max 1550
- Intel(R) Data Center GPU Max 1550
- Intel(R) Data Center GPU Max 1550
- Intel(R) Data Center GPU Max 1550
- Intel(R) Data Center GPU Max 1550
- Intel(R) Data Center GPU Max 1550
- Intel(R) Data Center GPU Max 1550
- Intel(R) Data Center GPU Max 1550
- Intel(R) Data Center GPU Max 1550
- Intel(R) Data Center GPU Max 1550
- Intel(R) Data Center GPU Max 1550
- Intel(R) Data Center GPU Max 1550
```

Apart from [a handful of MKL-related
issues](https://github.com/JuliaGPU/oneAPI.jl/issues/428), oneAPI.jl is fully functional on
PVC, and passes all tests.


## oneMLK wrappers

Thanks to the work of [@amontoison](https://github.com/amontoison), oneAPI.jl now provides
greatly improved wrappers of the oneMKL library. This includes support for:

- LAPACK: `geqrf`(`_batched`), `orgqr`(`_batched`), `ormqr`, `potrf`(`_batched`),
`potrs`(`_batched`), `getrf`(`_batched`), `getri`(`_batched`), `gebrd`, `gesvd`,
`syevd`, `heevd`, `sygvd`, `hegvd`
- Sparse arrays: `sparse_gemm`, `sparse_gemv`, `sparse_symv`, `sparse_trmv`, `sparse_trsv`,
`sparse_optimize_gemv`, `sparse_optimize_trsv`

Where possible, these functions are integrated with standard library interfaces, e.g.,
making it possible to simply call `eigen`, or to multiply two `oneSparseMatrixCSR`s.


## Minor changes

There have of course been many other changes and improvements in oneAPI.jl v1.5. For a full
list, please refer to the [release
notes](https://github.com/JuliaGPU/oneAPI.jl/releases/tag/v1.5.0), but some highlights
include:

- a new launch configuration heuristic that should generally improve performance;
- broadcast now preserves the buffer type (host, device, or shared);
- support for very large arrays that exceed the default device memory limit;
- several toolchain bumps, with v1.5 using oneAPI 2024.1.0 with driver 24.13.29138.7;
- minimal support for native Windows (next to WSL, which is fully supported).

0 comments on commit dbb9765

Please sign in to comment.