This patch adds a new Cycles device with similar functionality to the existing GPU devices. Kernel compilation and runtime interaction happen via oneAPI DPC++ compiler and SYCL API. This implementation is primarly focusing on Intel® Arc™ GPUs and other future Intel GPUs. The first supported drivers are 101.1660 on Windows and 22.10.22597 on Linux. The necessary tools for compilation are: - A SYCL compiler such as oneAPI DPC++ compiler or https://github.com/intel/llvm - Intel® oneAPI Level Zero which is used for low level device queries: https://github.com/oneapi-src/level-zero - To optionally generate prebuilt graphics binaries: Intel® Graphics Compiler All are included in Linux precompiled libraries on svn: https://svn.blender.org/svnroot/bf-blender/trunk/lib The same goes for Windows precompiled binaries but for the graphics compiler, available as "Intel® Graphics Offline Compiler for OpenCL™ Code" from https://www.intel.com/content/www/us/en/developer/articles/tool/oneapi-standalone-components.html, for which path can be set as OCLOC_INSTALL_DIR. Being based on the open SYCL standard, this implementation could also be extended to run on other compatible non-Intel hardware in the future. Reviewed By: sergey, brecht Differential Revision: https://developer.blender.org/D15254 Co-authored-by: Nikita Sirgienko <nikita.sirgienko@intel.com> Co-authored-by: Stefan Werner <stefan.werner@intel.com>
25 lines
573 B
CMake
25 lines
573 B
CMake
# SPDX-License-Identifier: GPL-2.0-or-later
|
|
|
|
set(OCLOC_EXTRA_ARGS
|
|
-DNEO_SKIP_UNIT_TESTS=1
|
|
-DNEO_BUILD_WITH_OCL=0
|
|
-DBUILD_WITH_L0=0
|
|
-DIGC_DIR=${LIBDIR}/igc
|
|
-DGMM_DIR=${LIBDIR}/gmmlib
|
|
)
|
|
|
|
ExternalProject_Add(external_ocloc
|
|
URL file://${PACKAGE_DIR}/${OCLOC_FILE}
|
|
URL_HASH ${OCLOC_HASH_TYPE}=${OCLOC_HASH}
|
|
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
|
PREFIX ${BUILD_DIR}/ocloc
|
|
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/ocloc ${DEFAULT_CMAKE_FLAGS} ${OCLOC_EXTRA_ARGS}
|
|
INSTALL_DIR ${LIBDIR}/ocloc
|
|
)
|
|
|
|
add_dependencies(
|
|
external_ocloc
|
|
external_igc
|
|
external_gmmlib
|
|
)
|