Для процедур преобразования Фурье я бы рекомендовал FFTW в зависимости от сценария использования. FFTW оптимизирован для сценария однократной подготовки, повторного использования. Поэтому, если вам нужно вычислить преобразование такого же типа, скажем, преобразование 1024x2000 (не в степени 2) внутри цикла, FFTW будет быстрее. Если вам нужно вычислить другой тип преобразования (размеры меняются каждый раз), тогда MKL будет быстрее.
Принцип работы FFTW заключается в том, что ваше программное обеспечение сначала вызывает подпрограмму подготовки, которая может занять от нескольких мс до нескольких секунд (вы можете настроить это), чтобы проверить вашу конкретную платформу и выбрать наиболее оптимизированную подпрограмму. Затем вы можете повторно вызвать процедуру преобразования с оптимизированным параметром.
У всех других известных библиотек есть fix-ed-оптимизация, которая может или не может быть оптимальной для вашей платформы.