SWDEV-197835 - adding Khronos OpenCL ICD build

Change-Id: Id7d9cd6076c6f1670eedbea06a6976c05e391520


[ROCm/clr commit: 932c83fe8f]
This commit is contained in:
Payam
2021-05-13 18:25:59 -04:00
gecommit door Payam Ghafari
bovenliggende 7fe2873a05
commit d09b6e30fc
4 gewijzigde bestanden met toevoegingen van 45 en 13 verwijderingen
+40 -8
Bestand weergeven
@@ -1,8 +1,28 @@
# Copyright (C) 2017-2021 Advanced Micro Devices, Inc. All Rights Reserved.
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal
# in the Software without restriction, including without limitation the rights
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
# copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
# THE SOFTWARE.
cmake_minimum_required(VERSION 3.5.1)
if (POLICY CMP0048)
cmake_policy(SET CMP0048 NEW)
set(PROJ_VERSION VERSION 1.5.0)
cmake_policy(SET CMP0048 NEW)
set(PROJ_VERSION VERSION 1.5.0)
endif()
project(opencl)
@@ -14,7 +34,17 @@ set(CMAKE_CXX_EXTENSIONS OFF)
#example command:
# cmake -DCMAKE_PREFIX_PATH=/path/to/ROCclr/build/or/install ..
set(OPENCL_ICD_LOADER_HEADERS_DIR "${CMAKE_CURRENT_SOURCE_DIR}/khronos/headers/opencl2.2" CACHE PATH "")
if(NOT DEFINED OPENCL_ICD_DIR)
set(OPENCL_ICD_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../OpenCL-ICD-Loader")
endif()
if(NOT DEFINED OPENCL_ICD_HEADERS)
set(OPENCL_ICD_HEADERS "${CMAKE_CURRENT_SOURCE_DIR}/../OpenCL-Headers")
endif()
set(OPENCL_ICD_LOADER_HEADERS_DIR "${OPENCL_ICD_HEADERS}" CACHE PATH "")
set(OPENCL_ICD_LOADER_HEADERS_DIR_INTERNAL "${CMAKE_CURRENT_SOURCE_DIR}/khronos/headers/opencl2.2" CACHE PATH "")
option(BUILD_SHARED_LIBS "Build shared libs" ON)
#set a name for icd file
@@ -65,12 +95,9 @@ if(USE_COMGR_LIBRARY)
endif()
find_package(ROCclr REQUIRED CONFIG
PATHS
${ROCclr_DIR}
${LIBROCclr_STATIC_DIR})
find_package(ROCclr REQUIRED CONFIG PATHS ${ROCclr_DIR} ${LIBROCclr_STATIC_DIR})
add_subdirectory(khronos/icd)
add_subdirectory(${OPENCL_ICD_DIR} ${OPENCL_ICD_DIR}/build)
add_subdirectory(amdocl)
add_subdirectory(tools/clinfo)
add_subdirectory(tools/cltrace)
@@ -137,6 +164,11 @@ install(PROGRAMS $<TARGET_LINKER_FILE:OpenCL>
DESTINATION lib
COMPONENT DEV)
add_custom_target(opencl ALL COMMAND echo "copying opencl lib from ${OPENCL_ICD_DIR}/build"
COMMAND cp ${OPENCL_ICD_DIR}/build/*.so* ${CMAKE_CURRENT_BINARY_DIR}/lib
WORKING_DIRECTORY ${BUILD_DIR}
DEPENDS amdocl64 OpenCL)
#############################
# Packaging steps
#############################
@@ -3,9 +3,9 @@ project(rocm-opencl)
install(DIRECTORY @PROJECT_BINARY_DIR@/bin DESTINATION . USE_SOURCE_PERMISSIONS)
install(FILES @PROJECT_BINARY_DIR@/lib/libamdocl64.so DESTINATION lib)
install(FILES @PROJECT_BINARY_DIR@/khronos/icd/libOpenCL.so DESTINATION lib)
install(FILES @PROJECT_BINARY_DIR@/khronos/icd/libOpenCL.so.@OPENCL_LIB_VERSION_MAJOR@ DESTINATION lib)
install(FILES @PROJECT_BINARY_DIR@/khronos/icd/libOpenCL.so.@OPENCL_LIB_VERSION_STRING@ DESTINATION lib)
install(FILES @PROJECT_BINARY_DIR@/lib/libOpenCL.so DESTINATION lib)
install(FILES @PROJECT_BINARY_DIR@/lib/libOpenCL.so.@OPENCL_LIB_VERSION_MAJOR@ DESTINATION lib)
install(FILES @PROJECT_BINARY_DIR@/lib/libOpenCL.so.@OPENCL_LIB_VERSION_STRING@ DESTINATION lib)
#############################
# Packaging steps
@@ -35,7 +35,7 @@ endif()
target_include_directories(Common
PUBLIC
${OPENCL_ICD_LOADER_HEADERS_DIR}
${OPENCL_ICD_LOADER_HEADERS_DIR_INTERNAL}
${OCLTST_DIR}/include
${OCLTST_DIR}/module/common
${OCLTST_DIR}/module/include
@@ -1,7 +1,7 @@
set (CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
include_directories(${OPENCL_ICD_LOADER_HEADERS_DIR})
include_directories(${OPENCL_ICD_LOADER_HEADERS_DIR_INTERNAL})
add_definitions(-DHAVE_CL2_HPP -DCL_TARGET_OPENCL_VERSION=220)