Купил себе игрушку — новый системник. С пятницы ебусь, затачивая его под мои задачи.
Во-первых, единственный бенчмарк для octave — obench.m
Или писать самому.
Во-вторых, ACML. Компилировать octave c acml не нужно, проще заменить системные libblas.so.3gf и liblapack.so.3gf на acml/gfortran64_mp/lib/libacml_mp.so
К сожалению, с libfftw3.so.3 и libfftw3f.so.3 такое не проходит.
Полдня потеряно. 1x-5x прироста скорости на разных операциях по сравнению с системными либами.
В-третьих, поставил свежие дрова на амд-шную видюху. В репозиториях дрова с августа, а для полной поддержки opencl нужны ноябрьские. Пользователи ubuntu слишком изнеженные, у нас проприентарные дрова ставятся в два клика — я был не готов к тому, что дрова нужно скачивать и они могут не встать с первого раза. Встали с третьего.
Ещё полдня.
APPML к octave не прикрутить. Ещё два раза по полдня. Либо делать oct\mex-файл (что бы использовать си-шные библиотеки из octave), либо прикручивать их к питону и использовать sage (питоновская альтернатива octave), либо на си писать (это была тонкая шутка).
APPML на GPU быстрее, чем на CPU в 1-70 раз. Т.е. использовать её придётся, на процессоре много не посчитаешь.
MAGMA — не нужно использовать. Аналог lapack, сразу заточенный под GPU, но с каким-то своим набором функций, не очень ясными авторами, и, оказывается, только под CUDA.
Короче, пора писать код, а с преждевременной оптимизацией нужно заканчивать. Считаем, что я разобрался, как и что.