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

Intel GPU #66

Open
ali-vaziri opened this issue Oct 4, 2023 · 8 comments
Open

Intel GPU #66

ali-vaziri opened this issue Oct 4, 2023 · 8 comments

Comments

@ali-vaziri
Copy link

ali-vaziri commented Oct 4, 2023

Hi,

I tried the diffusion3D example (attached file) on one Intel GPU using oneAPI/oneArray and did not use any of the ImplicitGlobalGrid native functions, as the signature only accepts CUDA/AMD arrays.

For nt=100000, I get ZE_RESULT_ERROR_DEVICE_LOST (device hung, reset, was removed, or driver update occurred). For nt=100, it works, but the results are not correct.

Any idea what could possibly go wrong?

Thanks!

P.S. oneAPI.versioninfo()

Binary dependencies:

  • NEO: 23.17.26241+0
  • libigc: 1.0.13822+0
  • gmmlib: 22.3.0+0
  • SPIRV_LLVM_Translator_unified: 0.3.0+0
  • SPIRV_Tools: 2023.2.0+0

Toolchain:

  • Julia: 1.9.3
  • LLVM: 14.0.6

1 driver:

  • 00000000-0000-0000-178a-f44f01036794 (v1.3.26516, API v1.3.0)

2 devices:

  • Intel(R) Data Center GPU Max 1100
  • Intel(R) Data Center GPU Max 1100
@luraess
Copy link
Collaborator

luraess commented Oct 5, 2023

Hi @ali-vaziri, it seems that the issue you are encountering are not relates to ImplicitGlobalGrid (IGG), but rather issues with oneAPI.jl itself, since as you are stating, you're not using any features from IGG, but mostly broadcasting over oneArrays.

I would recommend you remove the IGG-related calls in your example, and further reduce it until you figure out which part causes oneAPI to error. Then this should rather be reported to https://github.com/JuliaGPU/oneAPI.jl.

For IGG to work with oneAPI.jl, we would indeed need to add some features to it in a similar fashion to CUDA and AMDGPU.

@pengtu
Copy link

pengtu commented Oct 10, 2023

@luraess, Can you give us a general idea what it takes to support oneAPI.jl in IGG?

@kballeda
Copy link

kballeda commented Oct 10, 2023

@luraess when we tried to import IGG following errors are encountered, based on the log IGG may need to be updated to use CUDA 5.0.0. Can you make a release after bumping up the CUDA support version?

julia> import Pkg;Pkg.add("ImplicitGlobalGrid")
Updating registry at ~/.julia/registries/General.toml
Resolving package versions...
ERROR: Unsatisfiable requirements detected for package CUDA [052768ef]:
CUDA [052768ef] log:
├─possible versions are: 0.1.0-5.0.0 or uninstalled
├─restricted by julia compatibility requirements to versions: [2.3.0, 2.5.0-5.0.0] or uninstalled
├─restricted by compatibility requirements with ImplicitGlobalGrid [4d7a3746] to versions: [1.0.0-1.3.3, 3.1.0-4.4.1], leaving only versions: 3.1.0-4.4.1
│ └─ImplicitGlobalGrid [4d7a3746] log:
│ ├─possible versions are: 0.11.0-0.13.0 or uninstalled
│ └─restricted to versions * by an explicit requirement, leaving only versions: 0.11.0-0.13.0
└─restricted by compatibility requirements with GPUArrays [0c68f7d7] to versions: 5.0.0 or uninstalled — no versions left
└─GPUArrays [0c68f7d7] log:
├─possible versions are: 0.3.0-9.0.0 or uninstalled
└─restricted to versions 9 by oneAPI [8f75cd03], leaving only versions: 9.0.0
└─oneAPI [8f75cd03] log:
├─possible versions are: 1.4.0 or uninstalled
└─oneAPI [8f75cd03] is fixed to version 1.4.0

@luraess
Copy link
Collaborator

luraess commented Oct 10, 2023

@luraess when we tried to import IGG following errors are encountered, based on the log IGG may need to be updated to use CUDA 5.0.0. Can you make a release after bumping up the CUDA support version?

We will work on upgrading CUDA compatibility to latest. Thanks

@omlins
Copy link
Collaborator

omlins commented Oct 28, 2024

@luraess, Can you give us a general idea what it takes to support oneAPI.jl in IGG?

I can see that this message has not been answered so far. It will be pretty straightforward because it requires almost only to add some code (not modify) and analogue as we have it for CUDA.jl. Concretely, it meansto add an extension for oneAPI.jl, as we have one for CUDA.jl: https://github.com/eth-cscs/ImplicitGlobalGrid.jl/tree/master/src/CUDAExt

@kballeda
Copy link

kballeda commented Oct 29, 2024

@luraess, Can you give us a general idea what it takes to support oneAPI.jl in IGG?

I can see that this message has not been answered so far. It will be pretty straightforward because it requires almost only to add some code (not modify) and analogue as we have it for CUDA.jl. Concretely, it meansto add an extension for oneAPI.jl, as we have one for CUDA.jl: https://github.com/eth-cscs/ImplicitGlobalGrid.jl/tree/master/src/CUDAExt

Thanks for the update, I have created a PR contains changes to support oneAPI.jl for IGG (#98) this needs to be validated. It would be great if you could share the steps to test CUDA flow.

@luraess
Copy link
Collaborator

luraess commented Oct 29, 2024

share the steps to test CUDA flow

If you want to test on another backend than CPU, you can achieve this by running the test on a machine where the backend of interest is functional. There is yet no fully automated way to test the parallel features (mostly the update_halo tests); best is to run these tests launching the test scripts with mpirun or analogue.

@omlins
Copy link
Collaborator

omlins commented Nov 4, 2024

Thanks for the update, I have created a PR contains changes to support oneAPI.jl for IGG (#98) this needs to be validated. It would be great if you could share the steps to test CUDA flow.

@kballeda Thanks for creating the PR! Note that if you run ] test ImplicitGlobalGrid on a system with oneAPI functional, then it will test already most of the features of ImplicitGlobalGrid. Most tests are written in a way that they can run on a single process.

Of course, whenever you find unit tests that are specific to CUDA and AMDGPU, then writing an analog test for oneAPI will be needed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants