test_svd_opencl.exe is failing on Radeon R7, although passes on GTX 750 Ti.
Description
Output:
ArrayFire v3.9.0 (OpenCL, 64-bit Windows, build 64586e0 )
[0] AMD: Spectre, 6571 MB -- OpenCL 2.0 AMD-APP (3224.5) -- Device driver 3224.5 -- FP64 Support: True
-1- NVIDIA: NVIDIA GeForce GTX 750 Ti, 2047 MB -- OpenCL 3.0 CUDA -- Device driver 531.61 -- FP64 Support:
svd/2.Square, where TypeParam = struct af::af_cfloat
svd.cpp(150): LAPACKE Error (-5)
svd/2.Rect0, where TypeParam = struct af::af_cfloat
svd.cpp(150): LAPACKE Error (-5)
svd/2.Rect1, where TypeParam = struct af::af_cfloat
svd.cpp(150): LAPACKE Error (-5)
svd/2.InPlaceSquare, where TypeParam = struct af::af_cfloat
svd.cpp(150): LAPACKE Error (-5)
svd/2.InPlaceRect0, where TypeParam = struct af::af_cfloat
svd.cpp(150): LAPACKE Error (-5)
Cause:
The magma gebrd function, functions in an hybrid mode having host buffers and device buffers in sync.
A new device buffer dwork is created for the corresponding host buffer work.
The host buffer result from a vector object, which initializes all elements to 0.0
The corresponding device buffer is not initialized.
On the AMD, this resulted in NAN values produced by the gebrd function, which is detected in the following
lapacke copy function resulting in an error -5.
Additional information about the PR answering following questions:
- Can this PR be backported to older versions? yes
Fixes: #3147
Changes to Users
Fixed occasional bug
Checklist
- Rebased on latest master
- Code compiles
- Tests pass
- Functions added to unified API
- Functions documented