Главная /
Введение в принципы функционирования и применения современных мультиядерных архитектур (на примере Intel Xeon Phi) /
Следующую функцию void GetOptionPricesV4(float *pT, float *pK, float *pS0, float *pC) { int i; float d1, d2, erf1, erf2; #pragma simd for (i = 0; i < N; i++) { d1 = (logf(pS0[i] / pK[i]) + (r + sig * sig * 0.5f) * pT[i]) / (sig * sqrtf(pT[i])); d2 = (l
Следующую функцию
void GetOptionPricesV4(float *pT, float *pK, float *pS0, float *pC)
{
int i;
float d1, d2, erf1, erf2;
#pragma simd
for (i = 0; i < N; i++)
{
d1 = (logf(pS0[i] / pK[i]) + (r + sig * sig * 0.5f) *
pT[i]) / (sig * sqrtf(pT[i]));
d2 = (logf(pS0[i] / pK[i]) + (r - sig * sig * 0.5f) *
pT[i]) / (sig * sqrtf(pT[i]));
erf1 = 0.5f + 0.5f * erff(d1 / sqrtf(2.0f));
erf2 = 0.5f + 0.5f * erff(d2 / sqrtf(2.0f));
pC[i] = pS0[i] * erf1 - pK[i] * expf((-1.0f) * r *
pT[i]) * erf2;
}
}
требуется собрать с поддержкой векторного набора команд AVX. Какие ключи компилятора необходимо использовать
вопрос
Правильный ответ:
никаких, достаточно указания
#pragma simd
-mavx
-O3
Сложность вопроса
90
Сложность курса: Введение в принципы функционирования и применения современных мультиядерных архитектур (на примере Intel Xeon Phi)
65
Оценить вопрос
Комментарии:
Аноним
Кто ищет данные тесты inuit? Это же изи
01 дек 2019
Аноним
Экзамен сдал на 4. Спасибо сайту
10 ноя 2018
Аноним
Экзамен сдан на отлично. Спасибо vtone
04 май 2017
Другие ответы на вопросы из темы суперкомпьютерные технологии интуит.
- # Какие из указанных состояний строки кэша используются в протоколе MESI:
- # Какую латентность имеют большинство векторных инструкций?
- # Каким образом можно передавать данные между памятью хост-системы и памятью сопроцессора Intel Xeon Phi?
- # Пусть в программе присутствует следующий код:#define LOOP_SIZE 24 … int rr[LOOP_SIZE]; for(int k = 0; k < LOOP_SIZE; k++) { rr[k] = number % k; } Какого следует ожидать ускорения в результате векторизации по сравнению со скалярной версией на Intel Xeon Phi?
- # Пусть в программе присутствует следующий код:#define LOOP_SIZE 128 … int rr[LOOP_SIZE]; for(int k = 0; k < LOOP_SIZE; k++) { rr[k] = number % k; } Возможна ли векторизация данного цикла средствами компилятора для исполнения на Intel Xeon Phi?