![]() Оптимизация приложений с помощью Intel VTune Amplifier XE. Использование библиотеки Intel MKL при программировании на сопроцессоре Intel Xeon Phi. Презентацию к лекции Вы можете скачать здесь. В данном разделе рассматриваются модели использования библиотеки Intel Math. Kernel. Library при программировании на Intel Xeon Phi. Дается обзор способов вызова функций библиотеки, а также рекомендации по повышению производительности приложений. Intel Math. Kernel. Library (Intel MKL) . Библиотека включает в себя основные функции, используемые при разработке сложных высокопроизводительных программных комплексов. CPU Control поможет пропорционально разнести процессы по ядрам. Понятно, что если ЦП двухъядерный, активировать "4 ядра" без.Библиотека содержит функционал из следующих областей: Линейная алгебра (BLAS, LAPACK, работа с разреженными данными); Быстрое преобразование Фурье; Векторные функции (тригонометрические, гиперболические, экспоненциальные и логарифмические, возведение в степень и взятие корня, округление); Векторные генераторы случайных чисел и функции математической статистики; Интерполяция данных. На текущий момент Intel MKL поддерживает параллельное выполнение как на системах с общей памятью (в частности, на сопроцессорах Intel MIC), так и на кластерах (. Поддержка сопроцессора Intel Xeon Phi появилась в библиотеке с версии 1. Рис. Код библиотеки был оптимизирован для работы с 5. SIMD инструкциями. Для работы с библиотекой программисту доступны три модели (. Использование сопроцессора библиотекой Intel MKL происходит автоматически при вызове функций библиотеки. Это означает, что все обмены данными и передача управления ускорителю происходят внутри вызова функции без участия программиста. По умолчанию, MKL заботится и о балансировке нагрузки на систему. Библиотека сама решает, нужно ли в данном случае использовать сопроцессор, и как распределить нагрузку между процессором и сопроцессором. ![]()
Основной критерий использования ускорителя для выполнения той или иной функции – эффективность. В случае если в момент вызова функции сопроцессор занят другой задачей, для вычисления этой функции будет использован центральный процессор. Распределение нагрузки также может быть выполнено автоматически. При этом используются все доступные в системе сопроцессоры и CPU, количество ускорителей и процент нагрузки на них выбирается библиотекой исходя из достижения лучшей производительности в каждом конкретном случае. Это позволяет автоматически эффективно использовать все доступные вычислительные ресурсы системы. Следует отметить, что программист может задавать желаемое распределение нагрузки самостоятельно. Для того чтобы начать работать с AO, достаточно включить этот режим. Из программы это делается вызовом функции: Возможно также использование переменной окружения: Отметим, что если в системе не установлено ни одного сопроцессора, функции Intel MKL будут работать на CPU без дополнительных накладных расходов. Еще раз заметим, что исполняться на сопроцессоре будут только те функции, для которых существует эффективная реализация. Для правильного распределения системных ресурсов. Она значительно оптимизирует работу процессоров, грамотно распределяя нагрузку между ядрами. Это позволяет увеличить быстродействие системы даже при работе нескольких программ одновременно. В идеальном мире программы, оптимизированные под многопоточность, позволяют операционной Есть и третий вариант: механизм, который распределяет нагрузку между ядрами, а Двуядерные процессоры AMD содержат два полноценных ядра с кэш-памятью. В версии Intel MKL 1. BLAS 3- го уровня *GEMM, *TRSM и *TRMM. В следующих версиях библиотеки планируется расширить поддержку сопроцессора. Для указанных выше функций выполнение на сопроцессоре зависит и от входных размеров матрицы: Функции *GEMM выполняются на ускорителе, если M, N > 2. Функции *TRSM/*TRMM выполняются на ускорителе, если M, N > 3. Для квадратных матриц вычисления на сопроцессоре происходят быстрее. Для того чтобы задать желаемое распределение нагрузки между процессором и сопроцессорами можно воспользоваться функцией: mkl. В случае Intel MIC, к имени переменной добавляется приставка MIC.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. Archives
March 2017
Categories |