Conversation
|
Thanks for the PR. Do you have any benchmarks or an idea how much of a performance gain this gives over |
|
The performance measure results on GV100 are as follows. |
|
It's also about 2x speedup on P100 and V100. P100: leofang@p100:~/test$ python test_new_invh.py
[<class 'numpy.float32'>]
size, cupy_inv (ms), cupyx_invh (ms)
250, 3.173336200416088, 1.4493644936010242
500, 6.208867812529206, 2.329370193183422
1000, 12.1913154842332, 5.0745195941999555
2000, 27.29409351013601, 12.957816990092397
4000, 78.97032969631255, 46.617854200303555
[<class 'numpy.float64'>]
size, cupy_inv (ms), cupyx_invh (ms)
250, 3.098821802996099, 1.3088918989524245
500, 6.121482094749808, 2.3283300921320915
1000, 13.830788992345333, 5.601490498520434
2000, 32.329136319458485, 15.229962696321309
4000, 104.9062664853409, 65.85105890408158
leofang@p100:~/test$ python test_new_invh.py
[<class 'numpy.float32'>]
size, cupy_inv (ms), cupyx_invh (ms)
250, 3.156185895204544, 1.1962832184508443
500, 6.207655998878181, 2.3230151971802115
1000, 12.610913487151265, 5.125051084905863
2000, 27.278455207124352, 12.960979994386435
4000, 78.91009959857911, 46.63353420328349
[<class 'numpy.float64'>]
size, cupy_inv (ms), cupyx_invh (ms)
250, 2.9437166871502995, 1.116643799468875
500, 6.063109403476119, 2.2480450104922056
1000, 13.806240912526846, 5.5285342037677765
2000, 32.42374949622899, 15.16240001656115
4000, 105.13669641222805, 65.93173949513584V100: leofang@v100:~/test$ python test_new_invh.py
[<class 'numpy.float32'>]
size, cupy_inv (ms), cupyx_invh (ms)
250, 3.5224422812461853, 0.9978475980460644
500, 5.643645208328962, 2.0491267554461956
1000, 11.20378440245986, 4.316417686641216
2000, 22.649669833481312, 9.237194713205099
4000, 60.89561861008406, 29.915789421647787
[<class 'numpy.float64'>]
size, cupy_inv (ms), cupyx_invh (ms)
250, 2.586251962929964, 0.8944944478571415
500, 5.31118530780077, 1.9136645831167698
1000, 12.001861166208982, 4.664854798465967
2000, 26.72860072925687, 11.140924878418446
4000, 80.86111126467586, 46.179613936692476
leofang@v100:~/test$ python test_new_invh.py
[<class 'numpy.float32'>]
size, cupy_inv (ms), cupyx_invh (ms)
250, 2.8356215916574, 1.0268189013004303
500, 5.62763623893261, 2.0748370327055454
1000, 11.101678851991892, 4.331118427217007
2000, 22.502884082496166, 9.287280309945345
4000, 60.76891012489796, 29.883697628974915
[<class 'numpy.float64'>]
size, cupy_inv (ms), cupyx_invh (ms)
250, 2.5642848573625088, 0.9037657640874386
500, 5.302123725414276, 1.9433654844760895
1000, 11.950754560530186, 4.686544090509415
2000, 26.559684239327908, 11.151218507438898
4000, 80.61537211760879, 46.08936421573162 |
|
Thanks for your comment. I added unit tests for |
|
A detail but how about placing the function in |
|
Oh, this seems to apply for this PR as well #2529 Could you remove the availability checks? |
|
Thanks for your comment, I changed file names and removed cuSolver availability checking. Could you check this again? |
|
Thanks, LGTM! |
|
Jenkins, test this please. |
|
Successfully created a job for commit 219f64f: |
|
Jenkins CI test (for commit 219f64f, target branch master) failed with status FAILURE. |
|
Sorry it seems like tests are failing on Jenkins (test collection) due to the fact that |
|
I added a empty |
|
Thanks @anaruse , I'll try running it to check. Jenkins, test this please. |
|
Successfully created a job for commit 13918b7: |
|
Jenkins CI test (for commit 13918b7, target branch master) succeeded! |
|
Wow it really worked. What a bizarre bug...I think @hvy was referring to this pytest-dev/pytest#774 (comment)? |
|
Jenkins, test this please. |
|
Successfully created a job for commit 13918b7: |
|
Jenkins CI test (for commit 13918b7, target branch master) succeeded! |
|
LGTM! |
|
Thank you for merging the PR! |
This PR adds a function cupyx.linalg.invh to compute a inverse of Hermetian matrix.
This is related to #2313.