add_custom_target(libc-gpu-math-benchmarks) set(math_benchmark_flags "") if(LIBC_TARGET_ARCHITECTURE_IS_NVPTX) if(CUDAToolkit_FOUND) set(libdevice_path ${CUDAToolkit_BIN_DIR}/../nvvm/libdevice/libdevice.10.bc) if (EXISTS ${libdevice_path}) list(APPEND math_benchmark_flags "SHELL:-Xclang -mlink-builtin-bitcode -Xclang ${libdevice_path}") # Compile definition needed so the benchmark knows to register # NVPTX benchmarks. list(APPEND math_benchmark_flags "-DNVPTX_MATH_FOUND=1") endif() endif() endif() if(LIBC_TARGET_ARCHITECTURE_IS_AMDGPU) find_package(AMDDeviceLibs QUIET HINTS ${CMAKE_INSTALL_PREFIX} PATHS /opt/rocm) if(AMDDeviceLibs_FOUND) get_target_property(ocml_path ocml IMPORTED_LOCATION) list(APPEND math_benchmark_flags "SHELL:-Xclang -mlink-builtin-bitcode -Xclang ${ocml_path}") list(APPEND math_benchmark_flags "-DAMDGPU_MATH_FOUND=1") endif() endif() add_benchmark( sin_benchmark SUITE libc-gpu-math-benchmarks SRCS sin_benchmark.cpp DEPENDS libc.src.math.sin libc.src.math.sinf libc.src.stdlib.srand libc.src.stdlib.rand libc.src.__support.FPUtil.fp_bits libc.src.__support.CPP.bit libc.src.__support.CPP.array COMPILE_OPTIONS ${math_benchmark_flags} LOADER_ARGS --threads 64 ) add_benchmark( atan2_benchmark SUITE libc-gpu-math-benchmarks SRCS atan2_benchmark.cpp DEPENDS libc.src.math.atan2 libc.src.stdlib.srand libc.src.stdlib.rand libc.src.__support.FPUtil.fp_bits libc.src.__support.CPP.bit libc.src.__support.CPP.array COMPILE_OPTIONS ${math_benchmark_flags} LOADER_ARGS --threads 64 )