Comparison of Python GPU implementations of eigensolvers
Python implementations of GPU-based eigensolvers were tested and evaluated. The performance of PyCUDA and scikit-cuda library functions for Python were used and compared to the corresponding ones from the NumPy library. Despite GPU-based cuBLAS routines being faster than their usual NumPy equivalents on the consumer-level hardware used, cuSOLVER function implementations have longer execution times than the NumPy functions. Two Python variants of the tridiagonalization step of the Lanczos algorithm were tested with cuBLAS functions and we showed that a hybrid CPU-GPU approach resulted in an algorithm that was both fast and stable. However, the presented algorithms are still slower than the highly optimized NumPy eigensolver and further optimizations are needed to obtain GPU acceleration in our Python-based eigensolver.
By submitting their manuscript to the Samahang Pisika ng Pilipinas (SPP) for consideration, the Authors warrant that their work is original, does not infringe on existing copyrights, and is not under active consideration for publication elsewhere.
Upon acceptance of their manuscript, the Authors further agree to grant SPP the non-exclusive, worldwide, and royalty-free rights to record, edit, copy, reproduce, publish, distribute, and use all or part of the manuscript for any purpose, in any media now existing or developed in the future, either individually or as part of a collection.
All other associated economic and moral rights as granted by the Intellectual Property Code of the Philippines are maintained by the Authors.