Repository: cupy/cupy

Issue:
Revert "Support batched SVD"
Reverts cupy/cupy#4628

Lets check CIs if we revert this


Discussion:
Jenkins, test this please
Jenkins CI test (for commit ea7845dea5e76caa32cce9199ccadc0292d58142, target branch master) succeeded!

Jenkins, test this please
Jenkins CI test (for commit ea7845dea5e76caa32cce9199ccadc0292d58142, target branch master) succeeded!

Jenkins, test this please
Jenkins CI test (for commit ea7845dea5e76caa32cce9199ccadc0292d58142, target branch master) succeeded!

pfnCI, test this please.
Can I do one little experiment here? I wanna remove skip
Release is next week, and there is national holiday next tuesday, so we think it might be better to merge this pr first and address the concerns in a new one 😁
Right, nvm. The changes I wanna test cannot be done in the revert PR. Let's get this in asap and I'll try them in another PR.
Connection failure in a few CIs. Restarting...

Jenkins, test this please

Resolving patch:
diff --git a/cupy_setup_build.py b/cupy_setup_build.py
--- a/cupy_setup_build.py
+++ b/cupy_setup_build.py
@@ -618,6 +618,8 @@ def make_extensions(options, compiler, use_cython):
         link_args = s.setdefault('extra_link_args', [])
 
         if module['name'] == 'cusolver':
+            # cupy_backends/cupy_lapack.h has C++ template code
+            compile_args.append('--std=c++11')
             # openmp is required for cusolver
             if use_hip:
                 pass


Test patch:
diff --git a/tests/cupy_tests/linalg_tests/test_decomposition.py b/tests/cupy_tests/linalg_tests/test_decomposition.py
--- a/tests/cupy_tests/linalg_tests/test_decomposition.py
+++ b/tests/cupy_tests/linalg_tests/test_decomposition.py
@@ -257,8 +257,6 @@ def test_svd_rank3(self):
         self.check_usv((2, 32, 32))  # still use _gesvdj_batched
 
     @condition.repeat(3, 10)
-    @pytest.mark.skipif(cupy.cuda.runtime.runtimeGetVersion() == 10000,
-                        reason='cuSOLVER bug')
     def test_svd_rank3_loop(self):
         # This tests the loop-based batched gesvd on CUDA (_gesvd_batched)
         self.check_usv((2, 64, 64))
@@ -274,8 +272,6 @@ def test_svd_rank3_no_uv(self):
         self.check_singular((2, 4, 3))
 
     @condition.repeat(3, 10)
-    @pytest.mark.skipif(cupy.cuda.runtime.runtimeGetVersion() == 10000,
-                        reason='cuSOLVER bug')
     def test_svd_rank3_no_uv_loop(self):
         # This tests the loop-based batched gesvd on CUDA (_gesvd_batched)
         self.check_singular((2, 64, 64))
@@ -315,8 +311,6 @@ def test_svd_rank4(self):
         self.check_usv((2, 2, 32, 32))  # still use _gesvdj_batched
 
     @condition.repeat(3, 10)
-    @pytest.mark.skipif(cupy.cuda.runtime.runtimeGetVersion() == 10000,
-                        reason='cuSOLVER bug')
     def test_svd_rank4_loop(self):
         # This tests the loop-based batched gesvd on CUDA (_gesvd_batched)
         self.check_usv((3, 2, 64, 64))
@@ -332,8 +326,6 @@ def test_svd_rank4_no_uv(self):
         self.check_singular((2, 2, 4, 3))
 
     @condition.repeat(3, 10)
-    @pytest.mark.skipif(cupy.cuda.runtime.runtimeGetVersion() == 10000,
-                        reason='cuSOLVER bug')
     def test_svd_rank4_no_uv_loop(self):
         # This tests the loop-based batched gesvd on CUDA (_gesvd_batched)
         self.check_singular((3, 2, 64, 64))