#=============================================================================
# CMake build system files
#
# Copyright (c) 2017 Michal Babej / Tampere University of Technology
#
# 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.
#
#=============================================================================
set(TS_NAME "conformance")
set(TS_BASEDIR "${TESTSUITE_BASEDIR}/${TS_NAME}")
set(TS_BUILDDIR "${TS_BASEDIR}/src/${TS_NAME}-build")
set(TS_SRCDIR "${TS_BASEDIR}/src/${TS_NAME}")
if(NOT HAVE_GIT)
message(STATUS "Disabling testsuite ${TS_NAME}, requires git to checkout sources")
return()
endif()
if(NOT MAKE_PROGRAM)
message(STATUS "Disabling testsuite ${TS_NAME}, requires make to build")
return()
endif()
if(ENABLE_ICD AND (NOT OPENCL_LIBRARIES))
message(STATUS "Disabling ${TS_NAME}, can't find OpenCL library")
return()
endif()
# for SPIR-V tests
find_program(SPIRV_AS "spirv-as")
find_program(SPIRV_VAL "spirv-val")
if(SPIRV_AS AND SPIRV_VAL)
set(HAVE_SPIRV_TOOLS 1)
endif()
# the CTS is compiled against:
# OpenCL headers in <POCL>/include/CL, which are 3.0
# OpenCL library, which might be libpocl or ICD; we need to check ICD is 3.0 compatible
if(ENABLE_ICD AND HAVE_OCL_ICD AND (NOT HAVE_OCL_ICD_30_COMPATIBLE))
message(STATUS "OCL-ICD is not compatible with OpenCL-CTS version 3, disabling CTS")
return()
endif()
# if ENABLE_CONFORMANCE is OFF (default), the CTS reports a lot of failures with CPU driver
if(ENABLE_HOST_CPU_DEVICES AND (NOT ENABLE_CONFORMANCE))
message(WARNING "OpenCL-CTS + CPU driver need ENABLE_CONFORMANCE=ON, disabling CTS")
return()
endif()
message(STATUS "Enabling testsuite ${TS_NAME}")
list(APPEND ACTUALLY_ENABLED_TESTSUITES "${TS_NAME}")
set(ACTUALLY_ENABLED_TESTSUITES ${ACTUALLY_ENABLED_TESTSUITES} PARENT_SCOPE)
message(STATUS "enabling OpenCL-CTS version 3")
# new CTS (3.0)
if(ENABLE_ICD)
if(OPENCL_LIBRARIES AND (NOT OPENCL_LIBDIR))
get_filename_component(OPENCL_LIBDIR "${OPENCL_LIBRARIES}" DIRECTORY)
endif()
set(CTS_OPENCL_LIBDIR "-DCL_LIB_DIR=${OPENCL_LIBDIR}")
set(CTS_OPENCL_LIBRARY "-DOPENCL_LIBRARIES=${OPENCL_LIBRARIES}")
else()
set(CTS_OPENCL_LIBDIR "-DCL_LIB_DIR=$<TARGET_FILE_DIR:${POCL_LIBRARY_NAME}>")
set(CTS_OPENCL_LIBRARY "-DOPENCL_LIBRARIES=$<TARGET_FILE_NAME:${POCL_LIBRARY_NAME}>")
endif()
ExternalProject_Add(
${TS_NAME}
PREFIX "${TS_BASEDIR}" # TODO pocl/CTS
GIT_REPOSITORY "https://github.com/franz/OpenCL-CTS"
GIT_TAG "cl30"
CONFIGURE_COMMAND ${CMAKE_COMMAND}
-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
-DD3D10_IS_SUPPORTED=0 -DD3D11_IS_SUPPORTED=0
-DGL_IS_SUPPORTED=0 -DGLES_IS_SUPPORTED=0
-DCL_INCLUDE_DIR=${CMAKE_SOURCE_DIR}/include
${CTS_OPENCL_LIBDIR}
${CTS_OPENCL_LIBRARY}
-DENABLE_ASAN=${ENABLE_ASAN}
-DENABLE_TSAN=${ENABLE_TSAN}
"${TS_BASEDIR}/src/${TS_NAME}"
INSTALL_COMMAND /bin/true
)
set(TS_BUILDDIR "${TS_BUILDDIR}/test_conformance")
set(TS_SRCDIR "${TS_SRCDIR}/test_conformance")
if(HAVE_SPIRV_TOOLS)
# build SPIR-V binary files required by the SPIR-V subtests
#
# only lists atomic_inc_global.spvasm64 as dependency;
# there are many files in spirv_asm but one should be enough
# to get the command working
add_custom_command(OUTPUT "${TS_BUILDDIR}/spirv_new/spirv_bin/atomic_inc_global.spv64"
COMMAND "${TS_SRCDIR}/spirv_new/assemble_spirv.py"
ARGS "-s" "${TS_SRCDIR}/spirv_new/spirv_asm"
"-o" "${TS_BUILDDIR}/spirv_new/spirv_bin"
"-a" "${SPIRV_AS}"
"-l" "${SPIRV_VAL}"
DEPENDS "${TS_SRCDIR}/spirv_new/spirv_asm/atomic_inc_global.spvasm64"
VERBATIM)
add_custom_target(${TS_NAME}_spirv_binaries DEPENDS "${TS_BUILDDIR}/spirv_new/spirv_bin/atomic_inc_global.spv64")
# ^^ must depend on the CTS because we need the sources checked out
add_dependencies(${TS_NAME}_spirv_binaries ${TS_NAME})
add_dependencies(prepare_examples ${TS_NAME}_spirv_binaries)
else()
message(WARNING "spirv tools not found - disabling SPIRV tests in CTS")
endif()
set_target_properties(${TS_NAME} PROPERTIES EXCLUDE_FROM_ALL TRUE)
add_dependencies(prepare_examples ${TS_NAME})
add_test(NAME "${TS_NAME}_allocations_buffer"
COMMAND "${TS_BUILDDIR}/allocations/test_allocations" buffer buffer_non_blocking)
add_test(NAME "${TS_NAME}_allocations_image"
COMMAND "${TS_BUILDDIR}/allocations/test_allocations" image2d_read image2d_write image2d_read_non_blocking image2d_write_non_blocking)
# on recent LLVMs, run all tests except the get_kernel_arg_info.
# That test incorrectly assumes "const" type qualifiers are returned
# for non-pointer arguments too. The spec PDF says type qualifiers
# are only returned for pointer types, so the test is incorrect AFAICT
add_test(NAME "${TS_NAME}_api"
COMMAND "${TS_BUILDDIR}/api/test_api" get_platform_info get_sampler_info get_command_queue_info get_context_info get_device_info enqueue_task binary_get binary_create kernel_required_group_size release_kernel_order release_during_execute load_single_kernel load_two_kernels load_two_kernels_in_one load_two_kernels_manually get_program_info_kernel_names create_kernels_in_program get_kernel_info execute_kernel_local_sizes set_kernel_arg_by_index set_kernel_arg_constant set_kernel_arg_struct_array kernel_global_constant min_max_thread_dimensions min_max_work_items_sizes min_max_work_group_size min_max_read_image_args min_max_write_image_args min_max_mem_alloc_size min_max_image_2d_width min_max_image_2d_height min_max_image_3d_width min_max_image_3d_height min_max_image_3d_depth min_max_image_array_size min_max_image_buffer_size min_max_parameter_size min_max_samplers min_max_constant_buffer_size min_max_constant_args min_max_compute_units min_max_address_bits min_max_single_fp_config min_max_double_fp_config min_max_local_mem_size min_max_kernel_preferred_work_group_size_multiple min_max_execution_capabilities min_max_queue_properties min_max_device_version min_max_language_version kernel_arg_changes kernel_arg_multi_setup_random native_kernel create_context_from_type platform_extensions get_platform_ids bool_type repeated_setup_cleanup retain_queue_single retain_queue_multiple retain_mem_object_single retain_mem_object_multiple min_data_type_align_size_alignment mem_object_destructor_callback null_buffer_arg get_buffer_info get_image2d_info get_image3d_info get_image1d_info get_image1d_array_info get_image2d_array_info)
if(LLVM_VERSION VERSION_GREATER_EQUAL 11.0)
set(API_OCL_30_EXTRA_TEST kernel_attributes)
endif()
add_test(NAME "${TS_NAME}_api_ocl_30"
COMMAND "${TS_BUILDDIR}/api/test_api" buffer_properties_queries clone_kernel consistency_2d_image_from_buffer consistency_3d_image_writes consistency_depth_images consistency_device_and_host_timer consistency_device_en
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
本项目是基于C语言的POCL克隆项目设计源码,包含1935个文件,其中包括925个CL文件、280个C文件、183个H头文件、124个TXT文本文件、44个STDOUT文件、39个CC文件、37个CPP文件、33个MAK文件、31个VHDL文件和28个LL文件。系统专注于提供一个POCL的克隆版本,并支持Ventus GPGPU作为设备。系统为用户提供了一个稳定、高效的计算平台,支持高性能计算和GPGPU加速。
资源推荐
资源详情
资源评论
收起资源包目录
基于C语言的POCL克隆项目设计源码 (1837个子文件)
16_04.32bit 1KB
18_04.32bit 1KB
distro.64bit 1KB
conformance.64bit 1KB
16_04.64bit 1KB
18_04.64bit 1KB
rolling.64bit 775B
test_machine_fp16.adf 49KB
test_machine_LE.adf 41KB
test_machine.adf 41KB
README.ARM 684B
buster 989B
pocl-vulkan.c 155KB
sleefsimddp.c 133KB
sleefsimdsp.c 95KB
sleef_glue_auto.c 94KB
pocl_proxy.c 81KB
pocl_util.c 73KB
sleefdp.c 72KB
pocl-hsa.c 70KB
pocl-cuda.c 68KB
common.c 60KB
EinsteinToolkit.c 58KB
sleefsp.c 56KB
common_driver.c 31KB
pocl_build.c 31KB
printf.c 29KB
pocl_img_buf_cpy.c 27KB
basic.c 26KB
pocl_binary.c 25KB
printf_base.c 21KB
errol.c 21KB
pocl_cache.c 20KB
pocl_image_util.c 19KB
clGetDeviceInfo.c 19KB
test_clBuildProgram.c 18KB
pocl_tracing.c 18KB
test_clGetKernelArgInfo.c 17KB
pthread_scheduler.c 17KB
devices.c 16KB
test_enqueue_kernel_from_binary.c 16KB
pocl_ndrange_kernel.c 15KB
misc.c 15KB
pocl_local_size.c 15KB
matrix1.c 14KB
test_clCreateSubDevices.c 13KB
bufalloc.c 13KB
cpuinfo.c 12KB
sleef_builtin.c 12KB
clCreateImage.c 12KB
pthread.c 12KB
pocl_fill_memobj.c 11KB
test_command_buffer.c 10KB
clCreateBuffer.c 10KB
poclcc.c 10KB
clEnqueueCommandBufferKHR.c 9KB
clCreateProgramWithIL.c 9KB
pocl_topology.c 9KB
test_command_buffer_images.c 9KB
clSetKernelArg.c 9KB
pthread_utils.c 9KB
clCreateProgramWithBinary.c 8KB
clGetPlatformIDs.c 8KB
clEnqueueMapImage.c 8KB
pocl_file_util.c 8KB
clGetProgramInfo.c 8KB
clCreateSubDevices.c 8KB
clCreateContext.c 8KB
test_event_free.c 8KB
pocl_hash.c 8KB
test_buffer-image-copy.c 8KB
clReleaseContext.c 7KB
tta_device_main_dthread.c 7KB
pocl_debug.c 7KB
test_clCreateProgramWithBinary.c 7KB
test_clFinish.c 7KB
signal_handlers.c 7KB
tta_device_main.c 7KB
scalarwave.c 7KB
clEnqueueMapBuffer.c 7KB
test_program_from_binary_with_local_1_1_1.c 6KB
test_buffer_migration.c 6KB
test_buffer_ping_pong.c 6KB
clCreateSampler.c 6KB
clGetPlatformInfo.c 6KB
test_fill-buffer.c 6KB
test_deviceside_enqueue.c 6KB
clCloneKernel.c 6KB
clReleaseMemObject.c 5KB
clEnqueueReadBufferRect.c 5KB
clEnqueueWriteBufferRect.c 5KB
clReleaseProgram.c 5KB
run_kernel.c 5KB
test_clSetEventCallback.c 5KB
cl_half.c 5KB
clEnqueueReadImage.c 5KB
clSVMAlloc.c 5KB
clCreateSubBuffer.c 5KB
test_read-copy-write-buffer.c 5KB
clCreateProgramWithSource.c 5KB
共 1837 条
- 1
- 2
- 3
- 4
- 5
- 6
- 19
资源评论
沐知全栈开发
- 粉丝: 4999
- 资源: 4984
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 华为HCIA-WLAN 3.0 课程视频(10 WLAN组网架构(下).mp4)
- 华为HCIA-WLAN 3.0 课程视频(09 WLAN组网架构(上).mp4)
- 华为HCIA-WLAN 3.0 课程视频(08 WLAN基本概念.mp4)
- 华为HCIA-WLAN 3.0 课程视频(07 WLAN的关键技术(下).mp4)
- 南宁水果数据集-种植+气象+价格
- 华为HCIA-WLAN 3.0 课程视频(06 WLAN的关键技术(上).mp4)
- 约瑟夫环的深入解析与实现.zip
- Z20230951李奕臻.pdf
- Josephus问题详解与实现.zip
- 编程项目实战:基于asp.net技术的多线程的TCP端口扫描程序的设计与实现
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功