У статті представлено реалізацію алгоритму сингулярного розкладу матриці, розроблений для виконання на графічному процесорі, який складається з двох частин: ортогонального розкладання матриці та приведення матриці до діагонального вигляду. Наведено реалізацію зведення до дводіагонального вигляду матриці з обчисленням ортогональних множників за методом Хаусхолдера і діагоналізації із використанням матриці повороту Ґівенса в середовищі jCUDA. Проведено експерименти, результати яких ретельно досліджено на предмет часу обчислень, абсолютної похибки, а також проведено порівняння з альтернативними способами реалізації сингулярного розкладу як на центральному так і на графічних процесорах.
In this research paper we present an implementation of a singular value decomposition algorithm designed specifically for the graphics processing unit. It consists of two parts: orthogonal matrix decomposition and matrix diagonalization. Presented an implementation of bidiagonalization algorithm where we calculate the main bidiagonal matrix and two orthogonal multipliers using a series of House- holder transformations, as well as diagonalization algorithm with the help of Givens rotation matrices. Bothe these parts are implemented in jCUDA environment. Experiments have been conducted, the results of which have been thoroughly investigated on the matter of time consumption and calculations error. We’ve also compared our implementation with alternatives both on central and graphic processors.