I was running some of the clMagma test cases on my amd64 linux, and I observed that spotrf in very inaccurate for matrices with sizes between 4096 and 8192. Interestingly, it works great for smaller or larger matrices. Here's the test output
Code: Select all
$ export LD_LIBRARY_PATH=/opt/acml5.3.1/gfortran64_mp/lib:/opt/clAmdBlas-1.10.321/lib64
$ export MAGMA_CL_DIR=../interface_opencl
$ ./testing_spotrf_gpu
Usage:
testing_spotrf_gpu -N 1024
Initializing clMAGMA runtime ...
N CPU GFlop/s (sec) GPU GFlop/s (sec) ||R_magma-R_lapack||_F / ||R_lapack||_F
========================================================================================
1024 15.90 ( 0.02) 21.75 ( 0.02) 6.047437e-08
2048 39.45 ( 0.07) 41.75 ( 0.07) 7.084088e-08
3072 51.80 ( 0.19) 240.15 ( 0.04) 5.906473e-08
4032 61.75 ( 0.35) 372.92 ( 0.06) 5.172135e-08
magma_spotrf had error 1089.
5184 64.87 ( 0.72) 2411.94 ( 0.02) 6.033692e+01
magma_spotrf had error 1953.
6048 69.36 ( 1.06) 1473.26 ( 0.05) 6.025791e+01
magma_spotrf had error 3105.
7200 78.79 ( 1.58) 1312.31 ( 0.09) 6.249601e+01
magma_spotrf had error 3972.
8064 82.13 ( 2.13) 1092.68 ( 0.16) 6.248589e+01
8928 85.94 ( 2.76) 596.50 ( 0.40) 1.831093e-07
10560 87.78 ( 4.47) 643.52 ( 0.61) 2.243686e-07
Judging from the running times, the CPU computation seems to always succeed (running times are increasing), which the GPU computation seems to fail (running times are suspiciously small). Is this known and is there a workaround?
Thanks!