По моему опыту, вы можете получить больше преимуществ в производительности, переключившись на лучший eigensolver. Лучший решатель, о котором я знаю, это ARPACK . Вы получите наибольшую выгоду, если ваши матрицы имеют некоторую структуру, например, если они разреженные. Этот решатель также наиболее эффективен, если вам нужно извлечь лишь небольшую часть от общего числа собственных пар.
Я бы начал с того, что попробую этот решатель на ваших проблемах, работающих только на процессоре. Вы можете обнаружить, что это само по себе дает достаточную производительность для ваших нужд. Если нет, то относительно легко переместить ядро вычисления для ARPACK в графический процессор. Или доступны параллельные версии ARPACK.