Page MenuHomePhabricator

[OpenMP][Offload] Initial patch for Level Zero plugin
Needs RevisionPublic

Authored by hbae on Sep 23 2022, 1:54 PM.

Details

Summary

This patch contains changes for adding Level Zero plugin for Intel devices.
It is buildable when system has the latest Level Zero Loader. More details
about Level Zero Loader is available at
https://github.com/oneapi-src/level-zero/releases.

The plugin is not functional at this time since it relies on custom
compilation tool chain. We would like your initial feedback so that we can
make better progress with the ongoing upstream efforts.

Diff Detail

Event Timeline

hbae created this revision.Sep 23 2022, 1:54 PM
Herald added a project: Restricted Project. · View Herald TranscriptSep 23 2022, 1:54 PM
hbae requested review of this revision.Sep 23 2022, 1:54 PM

Add @jhuber6 for the ELF changes.

Why do we need a custom ELF reader? LLVM is a build requirement now so it should always be present.

We currently have a new plugin interface https://reviews.llvm.org/D134396, and the use of libelf is expected to go away.

openmp/libomptarget/cmake/Modules/LibomptargetGetDependencies.cmake
268

LLVM OpenMP doesn't support Windows. Do we want to keep the condition here?

285

Yeah, better to fix the suffix.

We currently have a new plugin interface https://reviews.llvm.org/D134396, and the use of libelf is expected to go away.

The libelf dependency has already been removed in LLVM, we only use LLVM's libraries now.

jdoerfert requested changes to this revision.Sep 23 2022, 5:05 PM

I'm not sure what makes the plugin rtl.cpp 5656 lines long, but I doubt all this code is useful in our toolchain. Moreover, plugins are ported to the new interface now to avoid 3+ different sets of features, environment variables, debug messages, ...

This revision now requires changes to proceed.Sep 23 2022, 5:05 PM

We currently have a new plugin interface https://reviews.llvm.org/D134396, and the use of libelf is expected to go away.

The libelf dependency has already been removed in LLVM, we only use LLVM's libraries now.

We are aware of the removal of libelf dependency. The preparation for this posting was done before the removal of libelf, we did not have enough time to reflect this change in the level_zero plugin.
Appreciate all the feedback so we can address them in the next update for review.