Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[oneapi] documentation updates #271

Merged
merged 3 commits into from
Oct 18, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 15 additions & 2 deletions docs/polaris/compiling-and-linking/oneapi-compiler.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,15 @@ Two oneAPI variants are provided, the first being a "release" version based on I

!!! note

The 2023.2.0 release of oneAPI Toolkit does not yet support oneMKL or oneDPL on Nvidia devices.
The 2023.2.1 release of oneAPI Toolkit does not yet support oneDPL on Nvidia devices. Though oneMKL is now added to 2023.2.1 release onwards

## Components
- These are the list of components associated with this module

| User Application | Component |
|-------------------|---------------------------------------------------------|
| Compilers | [DPC++](https://codeplay.com/portal/blogs/2023/07/13/oneapi-2023-2-release.html) |
| oneMKL Interfaces | [oneMKL](https://github.com/oneapi-src/oneMKL) |

The other variant being a build from the open-source. This variant will be more up-to-date at the risk of bugs and breakages based on code that has not undergone a full release cycle.
The documentation is located on the [SYCL](../programming-models/sycl-polaris.md) page. Most notable differences being, `icx/icpx` are the names of C/C++ compilers respectively when using the release version of the module where as `clang/clang++` are for open-source variant.
Expand All @@ -23,12 +31,17 @@ icpx -std=c++17 -fsycl -fsycl-targets=nvptx64-nvidia-cuda -Xsycl-target-backend
```

```
harms@polaris-login-04:~/working/polaris/oneapi> icpx --version
harms@polaris-login-04:~/working/polaris/oneapi> icpx -v
Intel(R) oneAPI DPC++/C++ Compiler 2023.2.0 (2023.2.0.20230721)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /soft/compilers/oneapi/release/2023.2/compiler/2023.2.1/linux/bin-llvm
Configuration file: /soft/compilers/oneapi/release/2023.2/compiler/2023.2.1/linux/bin-llvm/../bin/icpx.cfg
Found candidate GCC installation: /usr/lib64/gcc/x86_64-suse-linux/7
Selected GCC installation: /usr/lib64/gcc/x86_64-suse-linux/7
Candidate multilib: .;@m64
Selected multilib: .;@m64
Found CUDA installation: /opt/nvidia/hpc_sdk/Linux_x86_64/21.9/cuda/11.4, version 11.4
```

## Running
Expand Down
6 changes: 3 additions & 3 deletions docs/polaris/programming-models/sycl-polaris.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
- ALCF Tutorial: [https://github.com/argonne-lcf/sycltrain](https://github.com/argonne-lcf/sycltrain)

```
module load oneapi
module load oneapi/upstream
```

!!! note
Expand All @@ -19,7 +19,7 @@ This module (compilers, libraries) gets built periodically from the latest open-

| User Application | Component |
|-------------------|---------------------------------------------------------|
| Compilers | [DPC++](https://docs.nvidia.com/cuda/cublas/index.html) |
| Compilers | [DPC++](https://github.com/intel/llvm) |
| oneMKL Interfaces | [oneMKL](https://github.com/oneapi-src/oneMKL) |
| oneDPL | [oneDPL](https://github.com/oneapi-src/onedpl) |
| SYCLomatic/DPCT | [dpct](https://github.com/oneapi-src/syclomatic) |
Expand Down Expand Up @@ -255,7 +255,7 @@ int main() {

// Resultant matrix: C_onemkl
sycl::queue q(sycl::property_list{sycl::property::queue::in_order{}});
std::cout << "Device: " << q.get_device().get_info<info::device::name>() << std::endl << std::endl;
std::cout << "Device: " << q.get_device().get_info<sycl::info::device::name>() << std::endl << std::endl;

double* A_dev = sycl::malloc_device<double>(M*N, q);
double* B_dev = sycl::malloc_device<double>(N*P, q);
Expand Down