-
Notifications
You must be signed in to change notification settings - Fork 9
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
Implemented ProgramCacheLayer, updated CI #15
base: main
Are you sure you want to change the base?
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This didn't build for me using the previous instructions in the README, so either a) the README needs to be updated, or b) whatever changed that caused the build to break needs to be reverted.
Hi, The project should still build with the instructions in the README. Albeit we have a few new dependencies employed by the new ProgramCacheLayer, those should be automatically picked by FetchContent if not found on the system. There is a potential problem that I see, but it is not new with this PR. The CMake script assumes that the OpenCL-Headers are installed on the system. Can you please elaborate on what error you got, and on what kind of system? |
Sorry about that, I should have provided a better comment initially. I'm testing on my Ubuntu 22.04 Linux system. I get an error right away generating build files from CMake: $ cmake ..
-- The C compiler identification is GNU 11.4.0
-- The CXX compiler identification is GNU 11.4.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Could NOT find GTest (missing: GTest_DIR)
-- Could NOT find GTest (missing: GTEST_LIBRARY GTEST_INCLUDE_DIR GTEST_MAIN_LIBRARY)
-- Fetching googletest
-- Found Python: /usr/bin/python3.10 (found version "3.10.12") found components: Interpreter
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success
-- Found Threads: TRUE
CMake Warning at cmake/OpenCLHeadersCpp.cmake:2 (find_package):
By not providing "FindOpenCLHeadersCpp.cmake" in CMAKE_MODULE_PATH this
project has asked CMake to find a package configuration file provided by
"OpenCLHeadersCpp", but CMake did not find one.
Could not find a package configuration file provided by "OpenCLHeadersCpp"
with any of the following names:
OpenCLHeadersCppConfig.cmake
openclheaderscpp-config.cmake
Add the installation prefix of "OpenCLHeadersCpp" to CMAKE_PREFIX_PATH or
set "OpenCLHeadersCpp_DIR" to a directory containing one of the above
files. If "OpenCLHeadersCpp" provides a separate development package or
SDK, be sure it has been installed.
Call Stack (most recent call first):
cmake/Dependencies.cmake:4 (include)
CMakeLists.txt:26 (include)
-- Fetching OpenCLHeadersCpp
-- Could NOT find Doxygen (missing: DOXYGEN_EXECUTABLE)
CMake Error at build/_deps/openclheaderscpp-src/examples/src/CMakeLists.txt:11 (find_package):
By not providing "FindOpenCLICDLoader.cmake" in CMAKE_MODULE_PATH this
project has asked CMake to find a package configuration file provided by
"OpenCLICDLoader", but CMake did not find one.
Could not find a package configuration file provided by "OpenCLICDLoader"
with any of the following names:
OpenCLICDLoaderConfig.cmake
openclicdloader-config.cmake
Add the installation prefix of "OpenCLICDLoader" to CMAKE_PREFIX_PATH or
set "OpenCLICDLoader_DIR" to a directory containing one of the above files.
If "OpenCLICDLoader" provides a separate development package or SDK, be
sure it has been installed.
-- Configuring incomplete, errors occurred! I'm following the instructions from the README:
|
Thank you! This error originates from a quite long chain of problems. The direct source of it is the fact that with the current PR adds OpenCL-CLHPP as a dependency to OpenCL-Layers.
For now, I can propose 2 options: Option A): Since the OpenCL-Headers and the OpenCL-ICD-Loader were required to be installed on the system to build the OpenCL-Layers even before this changeset, it is arguable that OpenCL-CLHPP would join this group. The FetchContent(OpenCL-CLHPP) should be removed in that case, so this problem goes away (from this project - the aforementioned problems should still be handled in the corresponding projects). The change should be indicated in the README - with the addition of the other two pre-existing but unmentioned dependencies. Option B): Add the aforementioned fix (3.) to override @bashbaug please give input about the direction I should take. Thank you! |
I think option (B) is an OK short-term fix. Can you please file an issue in the OpenCL-CLHPP project though, so we don't lose track of this? (Would it be viable to only build the examples (and the docs?) by default when building the OpenCLHeadersCpp project directly? We do this already for most of our testing.) |
Fix pushed, issue filed: KhronosGroup/OpenCL-CLHPP#283 |
Latest commits:
|
ProgramCacheLayer
which performs the transparent caching of OpenCL program binaries on the filesystem.ProgramCache
static lib, which can be installed and consumed independently from the layer.ProgramCacheLayer
was tested via a subset of the CTS (basic
,api
andcompiler
suites), with multiple runtimes (Intel CPU, Nvidia).-Werror
//WX
is enabled in CIpresubmit
workflow now.git-clang-format
.ProgramCache
library from the install treeThis PR is considered to be complete, albeit review remarks and/or changes to related PRs might warrant minor updates.