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( atan2_benchmark SUITE libc-gpu-math-benchmarks SRCS atan2_benchmark.cpp HDRS platform.h DEPENDS libc.hdr.stdint_proxy libc.src.__support.macros.attributes libc.src.__support.macros.config libc.src.__support.macros.properties.types libc.src.math.atan2 COMPILE_OPTIONS ${math_benchmark_flags} LOADER_ARGS --threads 64 ) add_benchmark( exp_benchmark SUITE libc-gpu-math-benchmarks SRCS exp_benchmark.cpp HDRS platform.h DEPENDS libc.hdr.stdint_proxy libc.src.__support.macros.attributes libc.src.__support.macros.config libc.src.__support.macros.properties.types libc.src.math.exp COMPILE_OPTIONS ${math_benchmark_flags} LOADER_ARGS --threads 64 ) add_benchmark( expf_benchmark SUITE libc-gpu-math-benchmarks SRCS expf_benchmark.cpp HDRS platform.h DEPENDS libc.hdr.stdint_proxy libc.src.__support.macros.attributes libc.src.__support.macros.config libc.src.__support.macros.properties.types libc.src.math.expf COMPILE_OPTIONS ${math_benchmark_flags} LOADER_ARGS --threads 64 ) add_benchmark( expf16_benchmark SUITE libc-gpu-math-benchmarks SRCS expf16_benchmark.cpp HDRS platform.h DEPENDS libc.hdr.stdint_proxy libc.src.__support.macros.attributes libc.src.__support.macros.config libc.src.__support.macros.properties.types libc.src.math.expf16 COMPILE_OPTIONS ${math_benchmark_flags} LOADER_ARGS --threads 64 ) add_benchmark( log_benchmark SUITE libc-gpu-math-benchmarks SRCS log_benchmark.cpp HDRS platform.h DEPENDS libc.hdr.stdint_proxy libc.src.__support.macros.attributes libc.src.__support.macros.config libc.src.__support.macros.properties.types libc.src.__support.sign libc.src.math.log COMPILE_OPTIONS ${math_benchmark_flags} LOADER_ARGS --threads 64 ) add_benchmark( logf_benchmark SUITE libc-gpu-math-benchmarks SRCS logf_benchmark.cpp HDRS platform.h DEPENDS libc.hdr.stdint_proxy libc.src.__support.macros.attributes libc.src.__support.macros.config libc.src.__support.macros.properties.types libc.src.__support.sign libc.src.math.logf COMPILE_OPTIONS ${math_benchmark_flags} LOADER_ARGS --threads 64 ) add_benchmark( logf16_benchmark SUITE libc-gpu-math-benchmarks SRCS logf16_benchmark.cpp HDRS platform.h DEPENDS libc.hdr.stdint_proxy libc.src.__support.macros.attributes libc.src.__support.macros.config libc.src.__support.macros.properties.types libc.src.__support.sign libc.src.math.logf16 COMPILE_OPTIONS ${math_benchmark_flags} LOADER_ARGS --threads 64 ) add_benchmark( sin_benchmark SUITE libc-gpu-math-benchmarks SRCS sin_benchmark.cpp HDRS platform.h DEPENDS libc.hdr.stdint_proxy libc.src.__support.macros.attributes libc.src.__support.macros.config libc.src.__support.macros.properties.types libc.src.math.sin libc.src.math.sinf COMPILE_OPTIONS ${math_benchmark_flags} LOADER_ARGS --threads 64 )