[PATCH] D49889: [test-suite, CUDA] Filter out long-running redundant SIMD tests.

Artem Belevich via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Jul 26 16:41:55 PDT 2018


tra created this revision.
tra added a reviewer: jlebar.
Herald added subscribers: bixia, mgorny, sanjoy.

The tests do not depend on C++ library or C++ dialect.

We only need SIMD tests on CUDA-8.0 and 9.2. First one is to verify our
reference implementation against CUDA-provided one. The second one actually
tests clang-provided implementation of these functions.


Repository:
  rT test-suite

https://reviews.llvm.org/D49889

Files:
  External/CUDA/CMakeLists.txt


Index: External/CUDA/CMakeLists.txt
===================================================================
--- External/CUDA/CMakeLists.txt
+++ External/CUDA/CMakeLists.txt
@@ -52,27 +52,33 @@
   set(${Var} ${FileList})
 endmacro(cuda_glob)
 
+macro(create_one_local_test_f Name FileGlob FilterRegex)
+  if (${VariantSuffix} MATCHES ${FilterRegex})
+    cuda_glob(_sources ${FileGlob})
+    set(_executable ${Name}-${VariantSuffix})
+    set(_executable_path ${CMAKE_CURRENT_BINARY_DIR}/${_executable})
+    # Verify reference output if it exists.
+    if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${Name}.reference_output)
+      set(NO_REFERENCE_OUTPUT 1)
+      set(REFERENCE_OUTPUT ${CMAKE_CURRENT_SOURCE_DIR}/${Name}.reference_output)
+      llvm_test_traditional(${_executable})
+    else()
+      # otherwise just run the executable.
+      llvm_test_run()
+    endif()
+    llvm_test_executable(${_executable} ${_sources})
+    target_compile_options(${_executable} PUBLIC ${VariantCPPFLAGS})
+    if(VariantLibs)
+      target_link_libraries(${_executable} ${VariantLibs})
+    endif()
+    add_dependencies(cuda-tests-simple-${VariantSuffix} ${_executable})
+    # Local tests are presumed to be fast.
+    list(APPEND CUDA_SIMPLE_TEST_TARGETS ${_executable}.test)
+  endif()
+endmacro()
+
 macro(create_one_local_test Name FileGlob)
-  cuda_glob(_sources ${FileGlob})
-  set(_executable ${Name}-${VariantSuffix})
-  set(_executable_path ${CMAKE_CURRENT_BINARY_DIR}/${_executable})
-  # Verify reference output if it exists.
-  if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${Name}.reference_output)
-    set(NO_REFERENCE_OUTPUT 1)
-    set(REFERENCE_OUTPUT ${CMAKE_CURRENT_SOURCE_DIR}/${Name}.reference_output)
-    llvm_test_traditional(${_executable})
-  else()
-    # otherwise just run the executable.
-    llvm_test_run()
-  endif()
-  llvm_test_executable(${_executable} ${_sources})
-  target_compile_options(${_executable} PUBLIC ${VariantCPPFLAGS})
-  if(VariantLibs)
-    target_link_libraries(${_executable} ${VariantLibs})
-  endif()
-  add_dependencies(cuda-tests-simple-${VariantSuffix} ${_executable})
-  # Local tests are presumed to be fast.
-  list(APPEND CUDA_SIMPLE_TEST_TARGETS ${_executable}.test)
+  create_one_local_test_f(${Name} ${FileGlob} ".*")
 endmacro()
 
 # Create targets for CUDA tests that are part of the test suite.
@@ -87,7 +93,12 @@
   create_one_local_test(empty empty.cu)
   create_one_local_test(printf printf.cu)
   create_one_local_test(future future.cu)
-  create_one_local_test(simd simd.cu)
+  # We only need SIMD tests on CUDA-8.0 to verivy that our reference is correct
+  # and matches NVIDIA-provided one.  and on CUDA-9.2 to verify that clang's
+  # implementation matches the reference.  This test also happens to be the
+  # longest one, so by not running unnecessary instances we speed up cuda
+  # buildbot a lot.
+  create_one_local_test_f(simd simd.cu "cuda-(8\.0|9\.2)-c[+][+]11-libc[+][+]")
 endmacro()
 
 macro(thrust_make_test_name TestName TestSourcePath)


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D49889.157607.patch
Type: text/x-patch
Size: 3012 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20180726/35ccdb9b/attachment.bin>


More information about the llvm-commits mailing list