CMakeLists.txt 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417
  1. # The file split_test_helper.h was generated at first run,
  2. # it is now included in test/
  3. if(EXISTS ${CMAKE_CURRENT_BINARY_DIR}/split_test_helper.h)
  4. file(REMOVE ${CMAKE_CURRENT_BINARY_DIR}/split_test_helper.h)
  5. endif()
  6. set_property(GLOBAL PROPERTY EIGEN_CURRENT_SUBPROJECT "Unsupported")
  7. add_custom_target(BuildUnsupported)
  8. include_directories(../../test ../../unsupported ../../Eigen
  9. ${CMAKE_CURRENT_BINARY_DIR}/../../test)
  10. find_package (Threads)
  11. find_package(GoogleHash)
  12. if(GoogleHash_FOUND)
  13. add_definitions("-DEIGEN_GOOGLEHASH_SUPPORT")
  14. include_directories(${GOOGLEHASH_INCLUDES})
  15. ei_add_property(EIGEN_TESTED_BACKENDS "GoogleHash, ")
  16. else()
  17. ei_add_property(EIGEN_MISSING_BACKENDS "GoogleHash, ")
  18. endif()
  19. find_package(Adolc)
  20. if(Adolc_FOUND)
  21. include_directories(${ADOLC_INCLUDES})
  22. ei_add_property(EIGEN_TESTED_BACKENDS "Adolc, ")
  23. if(EIGEN_TEST_CXX11)
  24. ei_add_test(forward_adolc "" ${ADOLC_LIBRARIES})
  25. else()
  26. message(STATUS "Adolc found, but tests require C++11 mode")
  27. endif()
  28. else()
  29. ei_add_property(EIGEN_MISSING_BACKENDS "Adolc, ")
  30. endif()
  31. # this test seems to never have been successful on x87, so is considered to contain a FP-related bug.
  32. # see thread: "non-linear optimization test summary"
  33. ei_add_test(NonLinearOptimization)
  34. ei_add_test(NumericalDiff)
  35. ei_add_test(autodiff_scalar)
  36. ei_add_test(autodiff)
  37. ei_add_test(BVH)
  38. ei_add_test(matrix_exponential)
  39. ei_add_test(matrix_function)
  40. ei_add_test(matrix_power)
  41. ei_add_test(matrix_square_root)
  42. ei_add_test(alignedvector3)
  43. ei_add_test(FFT)
  44. ei_add_test(EulerAngles)
  45. find_package(MPREAL)
  46. if(MPREAL_FOUND AND EIGEN_COMPILER_SUPPORT_CPP11)
  47. ei_add_property(EIGEN_TESTED_BACKENDS "MPFR C++, ")
  48. include_directories(${MPREAL_INCLUDES})
  49. ei_add_test(mpreal_support "-std=c++11" "${MPREAL_LIBRARIES}" )
  50. else()
  51. ei_add_property(EIGEN_MISSING_BACKENDS "MPFR C++, ")
  52. endif()
  53. ei_add_test(sparse_extra "" "")
  54. find_package(FFTW)
  55. if(FFTW_FOUND)
  56. ei_add_property(EIGEN_TESTED_BACKENDS "fftw, ")
  57. include_directories( ${FFTW_INCLUDES} )
  58. if(FFTWL_LIB)
  59. ei_add_test(FFTW "-DEIGEN_FFTW_DEFAULT -DEIGEN_HAS_FFTWL" "${FFTW_LIBRARIES}" )
  60. else()
  61. ei_add_test(FFTW "-DEIGEN_FFTW_DEFAULT" "${FFTW_LIBRARIES}" )
  62. endif()
  63. else()
  64. ei_add_property(EIGEN_MISSING_BACKENDS "fftw, ")
  65. endif()
  66. option(EIGEN_TEST_OPENGL "Enable OpenGL support in unit tests" OFF)
  67. if(EIGEN_TEST_OPENGL)
  68. find_package(OpenGL)
  69. find_package(GLUT)
  70. find_package(GLEW)
  71. if(OPENGL_FOUND AND GLUT_FOUND AND GLEW_FOUND)
  72. include_directories(${OPENGL_INCLUDE_DIR} ${GLUT_INCLUDE_DIR} ${GLEW_INCLUDE_DIRS})
  73. ei_add_property(EIGEN_TESTED_BACKENDS "OpenGL, ")
  74. set(EIGEN_GL_LIB ${GLUT_LIBRARIES} ${GLEW_LIBRARIES} ${OPENGL_LIBRARIES})
  75. ei_add_test(openglsupport "" "${EIGEN_GL_LIB}" )
  76. else()
  77. ei_add_property(EIGEN_MISSING_BACKENDS "OpenGL, ")
  78. endif()
  79. else()
  80. ei_add_property(EIGEN_MISSING_BACKENDS "OpenGL, ")
  81. endif()
  82. ei_add_test(polynomialsolver)
  83. ei_add_test(polynomialutils)
  84. ei_add_test(splines)
  85. ei_add_test(gmres)
  86. ei_add_test(dgmres)
  87. ei_add_test(minres)
  88. ei_add_test(idrs)
  89. ei_add_test(levenberg_marquardt)
  90. ei_add_test(kronecker_product)
  91. ei_add_test(bessel_functions)
  92. ei_add_test(special_functions)
  93. ei_add_test(special_packetmath "-DEIGEN_FAST_MATH=1")
  94. if(EIGEN_TEST_CXX11)
  95. if(EIGEN_TEST_SYCL)
  96. set(EIGEN_SYCL ON)
  97. # Forward CMake options as preprocessor definitions
  98. if(EIGEN_SYCL_USE_DEFAULT_SELECTOR)
  99. add_definitions(-DEIGEN_SYCL_USE_DEFAULT_SELECTOR=${EIGEN_SYCL_USE_DEFAULT_SELECTOR})
  100. endif()
  101. if(EIGEN_SYCL_NO_LOCAL_MEM)
  102. add_definitions(-DEIGEN_SYCL_NO_LOCAL_MEM=${EIGEN_SYCL_NO_LOCAL_MEM})
  103. endif()
  104. if(EIGEN_SYCL_LOCAL_MEM)
  105. add_definitions(-DEIGEN_SYCL_LOCAL_MEM=${EIGEN_SYCL_LOCAL_MEM})
  106. endif()
  107. if(EIGEN_SYCL_MAX_GLOBAL_RANGE)
  108. add_definitions(-DEIGEN_SYCL_MAX_GLOBAL_RANGE=${EIGEN_SYCL_MAX_GLOBAL_RANGE})
  109. endif()
  110. if(EIGEN_SYCL_LOCAL_THREAD_DIM0)
  111. add_definitions(-DEIGEN_SYCL_LOCAL_THREAD_DIM0=${EIGEN_SYCL_LOCAL_THREAD_DIM0})
  112. endif()
  113. if(EIGEN_SYCL_LOCAL_THREAD_DIM1)
  114. add_definitions(-DEIGEN_SYCL_LOCAL_THREAD_DIM1=${EIGEN_SYCL_LOCAL_THREAD_DIM1})
  115. endif()
  116. if(EIGEN_SYCL_REG_M)
  117. add_definitions(-DEIGEN_SYCL_REG_M=${EIGEN_SYCL_REG_M})
  118. endif()
  119. if(EIGEN_SYCL_REG_N)
  120. add_definitions(-DEIGEN_SYCL_REG_N=${EIGEN_SYCL_REG_N})
  121. endif()
  122. if(EIGEN_SYCL_USE_PROGRAM_CLASS)
  123. add_definitions(-DEIGEN_SYCL_USE_PROGRAM_CLASS=${EIGEN_SYCL_USE_PROGRAM_CLASS})
  124. endif()
  125. if(EIGEN_SYCL_ASYNC_EXECUTION)
  126. add_definitions(-DEIGEN_SYCL_ASYNC_EXECUTION=${EIGEN_SYCL_ASYNC_EXECUTION})
  127. endif()
  128. if(EIGEN_SYCL_DISABLE_SKINNY)
  129. add_definitions(-DEIGEN_SYCL_DISABLE_SKINNY=${EIGEN_SYCL_DISABLE_SKINNY})
  130. endif()
  131. if(EIGEN_SYCL_DISABLE_DOUBLE_BUFFER)
  132. add_definitions(-DEIGEN_SYCL_DISABLE_DOUBLE_BUFFER=${EIGEN_SYCL_DISABLE_DOUBLE_BUFFER})
  133. endif()
  134. if(EIGEN_SYCL_DISABLE_RANK1)
  135. add_definitions(-DEIGEN_SYCL_DISABLE_RANK1=${EIGEN_SYCL_DISABLE_RANK1})
  136. endif()
  137. if(EIGEN_SYCL_DISABLE_SCALAR)
  138. add_definitions(-DEIGEN_SYCL_DISABLE_SCALAR=${EIGEN_SYCL_DISABLE_SCALAR})
  139. endif()
  140. if(EIGEN_SYCL_DISABLE_GEMV)
  141. add_definitions(-DEIGEN_SYCL_DISABLE_GEMV=${EIGEN_SYCL_DISABLE_GEMV})
  142. endif()
  143. if(EIGEN_SYCL_DISABLE_ARM_GPU_CACHE_OPTIMISATION)
  144. add_definitions(-DEIGEN_SYCL_DISABLE_ARM_GPU_CACHE_OPTIMISATION=${EIGEN_SYCL_DISABLE_ARM_GPU_CACHE_OPTIMISATION})
  145. endif()
  146. if(EIGEN_SYCL_TRISYCL)
  147. # triSYCL now requires c++17.
  148. set(CMAKE_CXX_STANDARD 17)
  149. else()
  150. if(MSVC)
  151. # Set the host and device compilers C++ standard to C++14. On Windows setting this to C++11
  152. # can cause issues with the ComputeCpp device compiler parsing Visual Studio Headers.
  153. set(CMAKE_CXX_STANDARD 14)
  154. list(APPEND COMPUTECPP_USER_FLAGS -DWIN32)
  155. else()
  156. set(CMAKE_CXX_STANDARD 11)
  157. list(APPEND COMPUTECPP_USER_FLAGS -Wall)
  158. endif()
  159. # The following flags are not supported by Clang and can cause warnings
  160. # if used with -Werror so they are removed here.
  161. if(COMPUTECPP_USE_COMPILER_DRIVER)
  162. set(CMAKE_CXX_COMPILER ${ComputeCpp_DEVICE_COMPILER_EXECUTABLE})
  163. string(REPLACE "-Wlogical-op" "" CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS})
  164. string(REPLACE "-Wno-psabi" "" CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS})
  165. string(REPLACE "-ansi" "" CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS})
  166. endif()
  167. list(APPEND COMPUTECPP_USER_FLAGS
  168. -DEIGEN_NO_ASSERTION_CHECKING=1
  169. -no-serial-memop
  170. -Xclang
  171. -cl-mad-enable)
  172. endif()
  173. ei_add_test(cxx11_tensor_sycl ${STD_CXX_FLAG})
  174. ei_add_test(cxx11_tensor_image_op_sycl ${STD_CXX_FLAG})
  175. ei_add_test(cxx11_tensor_math_sycl ${STD_CXX_FLAG})
  176. ei_add_test(cxx11_tensor_forced_eval_sycl ${STD_CXX_FLAG})
  177. ei_add_test(cxx11_tensor_broadcast_sycl ${STD_CXX_FLAG})
  178. ei_add_test(cxx11_tensor_device_sycl ${STD_CXX_FLAG})
  179. ei_add_test(cxx11_tensor_reduction_sycl ${STD_CXX_FLAG})
  180. ei_add_test(cxx11_tensor_morphing_sycl ${STD_CXX_FLAG})
  181. ei_add_test(cxx11_tensor_shuffling_sycl ${STD_CXX_FLAG})
  182. ei_add_test(cxx11_tensor_padding_sycl ${STD_CXX_FLAG})
  183. ei_add_test(cxx11_tensor_builtins_sycl ${STD_CXX_FLAG})
  184. ei_add_test(cxx11_tensor_contract_sycl ${STD_CXX_FLAG})
  185. ei_add_test(cxx11_tensor_concatenation_sycl ${STD_CXX_FLAG})
  186. ei_add_test(cxx11_tensor_reverse_sycl ${STD_CXX_FLAG})
  187. ei_add_test(cxx11_tensor_convolution_sycl ${STD_CXX_FLAG})
  188. ei_add_test(cxx11_tensor_striding_sycl ${STD_CXX_FLAG})
  189. ei_add_test(cxx11_tensor_chipping_sycl ${STD_CXX_FLAG})
  190. ei_add_test(cxx11_tensor_layout_swap_sycl ${STD_CXX_FLAG})
  191. ei_add_test(cxx11_tensor_inflation_sycl ${STD_CXX_FLAG})
  192. ei_add_test(cxx11_tensor_random_sycl ${STD_CXX_FLAG})
  193. ei_add_test(cxx11_tensor_generator_sycl ${STD_CXX_FLAG})
  194. ei_add_test(cxx11_tensor_patch_sycl ${STD_CXX_FLAG})
  195. ei_add_test(cxx11_tensor_image_patch_sycl ${STD_CXX_FLAG})
  196. ei_add_test(cxx11_tensor_volume_patch_sycl ${STD_CXX_FLAG})
  197. ei_add_test(cxx11_tensor_argmax_sycl ${STD_CXX_FLAG})
  198. ei_add_test(cxx11_tensor_custom_op_sycl ${STD_CXX_FLAG})
  199. ei_add_test(cxx11_tensor_scan_sycl ${STD_CXX_FLAG})
  200. set(EIGEN_SYCL OFF)
  201. endif()
  202. ei_add_test(cxx11_eventcount "-pthread" "${CMAKE_THREAD_LIBS_INIT}")
  203. ei_add_test(cxx11_runqueue "-pthread" "${CMAKE_THREAD_LIBS_INIT}")
  204. ei_add_test(cxx11_non_blocking_thread_pool "-pthread" "${CMAKE_THREAD_LIBS_INIT}")
  205. ei_add_test(cxx11_meta)
  206. ei_add_test(cxx11_maxsizevector)
  207. ei_add_test(cxx11_tensor_argmax)
  208. ei_add_test(cxx11_tensor_assign)
  209. ei_add_test(cxx11_tensor_block_access)
  210. ei_add_test(cxx11_tensor_block_eval)
  211. ei_add_test(cxx11_tensor_block_io)
  212. ei_add_test(cxx11_tensor_broadcasting)
  213. ei_add_test(cxx11_tensor_casts)
  214. ei_add_test(cxx11_tensor_chipping)
  215. ei_add_test(cxx11_tensor_comparisons)
  216. ei_add_test(cxx11_tensor_concatenation)
  217. ei_add_test(cxx11_tensor_const)
  218. ei_add_test(cxx11_tensor_contraction)
  219. ei_add_test(cxx11_tensor_convolution)
  220. ei_add_test(cxx11_tensor_custom_index)
  221. ei_add_test(cxx11_tensor_custom_op)
  222. ei_add_test(cxx11_tensor_dimension)
  223. ei_add_test(cxx11_tensor_empty)
  224. ei_add_test(cxx11_tensor_executor "-pthread" "${CMAKE_THREAD_LIBS_INIT}")
  225. ei_add_test(cxx11_tensor_expr)
  226. ei_add_test(cxx11_tensor_fft)
  227. ei_add_test(cxx11_tensor_fixed_size)
  228. ei_add_test(cxx11_tensor_forced_eval)
  229. ei_add_test(cxx11_tensor_generator)
  230. ei_add_test(cxx11_tensor_ifft)
  231. ei_add_test(cxx11_tensor_image_patch)
  232. ei_add_test(cxx11_tensor_index_list)
  233. ei_add_test(cxx11_tensor_inflation)
  234. ei_add_test(cxx11_tensor_intdiv)
  235. ei_add_test(cxx11_tensor_io)
  236. ei_add_test(cxx11_tensor_layout_swap)
  237. ei_add_test(cxx11_tensor_lvalue)
  238. ei_add_test(cxx11_tensor_map)
  239. ei_add_test(cxx11_tensor_math)
  240. ei_add_test(cxx11_tensor_mixed_indices)
  241. ei_add_test(cxx11_tensor_morphing)
  242. ei_add_test(cxx11_tensor_move)
  243. ei_add_test(cxx11_tensor_notification "-pthread" "${CMAKE_THREAD_LIBS_INIT}")
  244. ei_add_test(cxx11_tensor_of_complex)
  245. ei_add_test(cxx11_tensor_of_const_values)
  246. ei_add_test(cxx11_tensor_of_strings)
  247. ei_add_test(cxx11_tensor_padding)
  248. ei_add_test(cxx11_tensor_patch)
  249. ei_add_test(cxx11_tensor_random)
  250. ei_add_test(cxx11_tensor_reduction)
  251. ei_add_test(cxx11_tensor_ref)
  252. ei_add_test(cxx11_tensor_roundings)
  253. ei_add_test(cxx11_tensor_scan)
  254. ei_add_test(cxx11_tensor_shuffling)
  255. ei_add_test(cxx11_tensor_simple)
  256. ei_add_test(cxx11_tensor_striding)
  257. ei_add_test(cxx11_tensor_sugar)
  258. ei_add_test(cxx11_tensor_thread_local "-pthread" "${CMAKE_THREAD_LIBS_INIT}")
  259. ei_add_test(cxx11_tensor_thread_pool "-pthread" "${CMAKE_THREAD_LIBS_INIT}")
  260. ei_add_test(cxx11_tensor_trace)
  261. ei_add_test(cxx11_tensor_volume_patch)
  262. # ei_add_test(cxx11_tensor_symmetry)
  263. if("${CMAKE_SIZEOF_VOID_P}" EQUAL "8" AND NOT CMAKE_CXX_COMPILER_ID STREQUAL "MSVC")
  264. # This test requires __uint128_t which is only available on 64bit systems
  265. ei_add_test(cxx11_tensor_uint128)
  266. endif()
  267. endif()
  268. # These tests needs nvcc
  269. find_package(CUDA 7.0)
  270. if(CUDA_FOUND AND EIGEN_TEST_CUDA)
  271. # Make sure to compile without the -pedantic, -Wundef, -Wnon-virtual-dtor
  272. # and -fno-check-new flags since they trigger thousands of compilation warnings
  273. # in the CUDA runtime
  274. # Also remove -ansi that is incompatible with std=c++11.
  275. string(REPLACE "-pedantic" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
  276. string(REPLACE "-Wundef" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
  277. string(REPLACE "-Wnon-virtual-dtor" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
  278. string(REPLACE "-fno-check-new" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
  279. string(REPLACE "-ansi" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
  280. message(STATUS "Flags used to compile cuda code: " ${CMAKE_CXX_FLAGS})
  281. if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
  282. set(CUDA_NVCC_FLAGS "-ccbin ${CMAKE_C_COMPILER}" CACHE STRING "nvcc flags" FORCE)
  283. endif()
  284. if(EIGEN_TEST_CUDA_CLANG)
  285. set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
  286. string(APPEND CMAKE_CXX_FLAGS " --cuda-path=${CUDA_TOOLKIT_ROOT_DIR}")
  287. foreach(ARCH IN LISTS EIGEN_CUDA_COMPUTE_ARCH)
  288. string(APPEND CMAKE_CXX_FLAGS " --cuda-gpu-arch=sm_${ARCH}")
  289. endforeach()
  290. endif()
  291. set(EIGEN_CUDA_RELAXED_CONSTEXPR "--expt-relaxed-constexpr")
  292. if (${CUDA_VERSION} STREQUAL "7.0")
  293. set(EIGEN_CUDA_RELAXED_CONSTEXPR "--relaxed-constexpr")
  294. endif()
  295. set(NVCC_ARCH_FLAGS)
  296. foreach(ARCH IN LISTS EIGEN_CUDA_COMPUTE_ARCH)
  297. string(APPEND NVCC_ARCH_FLAGS " -gencode arch=compute_${ARCH},code=sm_${ARCH}")
  298. endforeach()
  299. set(CUDA_NVCC_FLAGS "${EIGEN_CUDA_RELAXED_CONSTEXPR} -Xcudafe \"--display_error_number\" ${NVCC_ARCH_FLAGS} ${CUDA_NVCC_FLAGS}")
  300. cuda_include_directories("${CMAKE_CURRENT_BINARY_DIR}" "${CUDA_TOOLKIT_ROOT_DIR}/include")
  301. set(EIGEN_ADD_TEST_FILENAME_EXTENSION "cu")
  302. ei_add_test(cxx11_tensor_complex_gpu)
  303. ei_add_test(cxx11_tensor_complex_cwise_ops_gpu)
  304. ei_add_test(cxx11_tensor_reduction_gpu)
  305. ei_add_test(cxx11_tensor_argmax_gpu)
  306. ei_add_test(cxx11_tensor_cast_float16_gpu)
  307. ei_add_test(cxx11_tensor_scan_gpu)
  308. set(EIGEN_CUDA_OLDEST_COMPUTE_ARCH 9999)
  309. foreach(ARCH IN LISTS EIGEN_CUDA_COMPUTE_ARCH)
  310. if(${ARCH} LESS ${EIGEN_CUDA_OLDEST_COMPUTE_ARCH})
  311. set(EIGEN_CUDA_OLDEST_COMPUTE_ARCH ${ARCH})
  312. endif()
  313. endforeach()
  314. # Contractions require arch 3.0 or higher
  315. if (${EIGEN_CUDA_OLDEST_COMPUTE_ARCH} GREATER 29)
  316. ei_add_test(cxx11_tensor_device)
  317. ei_add_test(cxx11_tensor_gpu)
  318. ei_add_test(cxx11_tensor_contract_gpu)
  319. ei_add_test(cxx11_tensor_of_float16_gpu)
  320. endif()
  321. # The random number generation code requires arch 3.5 or greater.
  322. if (${EIGEN_CUDA_OLDEST_COMPUTE_ARCH} GREATER 34)
  323. ei_add_test(cxx11_tensor_random_gpu)
  324. endif()
  325. unset(EIGEN_ADD_TEST_FILENAME_EXTENSION)
  326. endif()
  327. # Add HIP specific tests
  328. if (EIGEN_TEST_HIP)
  329. set(HIP_PATH "/opt/rocm/hip" CACHE STRING "Path to the HIP installation.")
  330. if (EXISTS ${HIP_PATH})
  331. list(APPEND CMAKE_MODULE_PATH ${HIP_PATH}/cmake)
  332. find_package(HIP REQUIRED)
  333. if (HIP_FOUND)
  334. execute_process(COMMAND ${HIP_PATH}/bin/hipconfig --platform OUTPUT_VARIABLE HIP_PLATFORM)
  335. if ((${HIP_PLATFORM} STREQUAL "hcc") OR (${HIP_PLATFORM} STREQUAL "amd"))
  336. include_directories(${CMAKE_CURRENT_BINARY_DIR})
  337. include_directories(${HIP_PATH}/include)
  338. set(EIGEN_ADD_TEST_FILENAME_EXTENSION "cu")
  339. #
  340. # complex datatype is not yet supported by HIP
  341. # so leaving out those tests for now
  342. #
  343. # ei_add_test(cxx11_tensor_complex_gpu)
  344. # ei_add_test(cxx11_tensor_complex_cwise_ops_gpu)
  345. #
  346. ei_add_test(cxx11_tensor_reduction_gpu)
  347. ei_add_test(cxx11_tensor_argmax_gpu)
  348. ei_add_test(cxx11_tensor_cast_float16_gpu)
  349. ei_add_test(cxx11_tensor_scan_gpu)
  350. ei_add_test(cxx11_tensor_device)
  351. ei_add_test(cxx11_tensor_gpu)
  352. ei_add_test(cxx11_tensor_contract_gpu)
  353. ei_add_test(cxx11_tensor_of_float16_gpu)
  354. ei_add_test(cxx11_tensor_random_gpu)
  355. unset(EIGEN_ADD_TEST_FILENAME_EXTENSION)
  356. elseif ((${HIP_PLATFORM} STREQUAL "nvcc") OR (${HIP_PLATFORM} STREQUAL "nvidia"))
  357. message(FATAL_ERROR "HIP_PLATFORM = nvcc is not supported within Eigen")
  358. else ()
  359. message(FATAL_ERROR "Unknown HIP_PLATFORM = ${HIP_PLATFORM}")
  360. endif()
  361. endif()
  362. else ()
  363. message(FATAL_ERROR "EIGEN_TEST_HIP is ON, but the specified HIP_PATH (${HIP_PATH}) does not exist")
  364. endif()
  365. endif()