Intel MKL по сравнению с математической оперативной библиотекой AMD

Другой пример:

double d = 0;
for (int i = 1; i <= 10; i++) {
    d += 0.1;
}
System.out.println(d);    // prints 0.9999999999999999 not 1.0

Использование BigDecimal вместо этого.

РЕДАКТИРОВАНИЕ:

кроме того, только для указания это не проблема округления 'Java'. Другие языки показывают подобный (хотя не обязательно последовательный) поведение. Java, по крайней мере, гарантирует последовательное поведение в этом отношении.

23
задан iH8 18 November 2014 в 18:10
поделиться

3 ответа

Intel MKL и ACML имеют похожие API, но MKL имеет более богатый набор поддерживаемых функций, включая BLAS ( и CBLAS) / LAPACK / FFT / Vector и Statistical Math / Sparse прямые и итерационные решатели / Sparse BLAS и т. д. Intel MKL также оптимизирован для процессоров Intel и AMD и имеет активный пользовательский форум, к которому вы можете обратиться за помощью или советом. Независимая оценка двух библиотек размещена здесь: ( http://www.advancedclustering.com/company-blog/high-performance-linpack-on-xeon-5500-v-opteron-2400.html )

• Шейн Кордер, Advanced Clustering, (также предоставлено HPCWire: Benchmark Challenge: Nehalem Versus Istanbul): «В ходе нашего недавнего тестирования и практического опыта мы обнаружили, что компиляторы Intel и библиотека Intel Math Kernel Library (MKL) обычно обеспечивают лучшую производительность. Вместо того, чтобы просто остановиться на инструментарии Intel, мы попробовали различные компиляторы, включая: Intel, компиляторы GNU и Portland Group. Мы также протестировали различные библиотеки линейной алгебры, в том числе: MKL, AMD Core Math Library (ACML) и libGOTO от Техасского университета. Все тесты показали, что мы можем достичь наивысшей производительности при использовании как компиляторов Intel, так и Intel Math Library - даже в системе AMD - поэтому они были использованы в качестве основы для наших тестов ». [Тестирование производительности показало 4-ядерный Nehalem X5550 2,66 ГГц при 74,0GF против Istanbul 2435 2,6 ГГц при 99,4GF;

12
ответ дан 29 November 2019 в 03:04
поделиться

Я использовал AMCL для его подпрограмм BLAS / LAPACK, так что это наверное не отвечу на ваш вопрос, но надеюсь, что это кому-то пригодится. Сравнивая их с ванильным BLAS / LAPACK, их производительность была в 2-3 раза лучше в моем конкретном случае использования. Я использовал его для плотных несимметричных комплексных матриц, как для линейных решений, так и для собственных вычислений. Вы должны знать, что объявления функций не идентичны обычным подпрограммам. Это потребовало значительного количества макросов препроцессора, чтобы я мог свободно переключаться между ними. В частности, все подпрограммы LAPACK в AMCL не требуют рабочих массивов. Это очень удобно, если вы будете использовать только AMCL.

2
ответ дан 29 November 2019 в 03:04
поделиться

Фактически, в ACML есть две версии подпрограмм LAPACK. Те, что без подчеркивания (_), являются подпрограммами C-версии, которые, как сказал Виктор, не требуют массивов рабочей области, и вы можете просто передавать значения вместо ссылок для параметров. Тем не менее, те, что отмечены подчеркиванием, - это просто стандартные процедуры на Фортране. Сделайте «dumpbin / exports» для libacml_dll.dll, и вы увидите.

3
ответ дан 29 November 2019 в 03:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: