У меня есть очень простой Fortran цикл, который устанавливает некоторые элементы массива в 0.0
, как показано ниже:Компилятор неспособен векторизовать внутренний цикл
!dir$ loop count min(128)
arr(1:max(start,someVar)) = 0.0
Когда я скомпилировать файл с ifort, то векторизации отчет говорит:
file.f90(60): (col. 5) remark: LOOP WAS VECTORIZED
file.f90(60): (col. 5) remark: loop was not vectorized: not inner loop
Я попытался с помощью !dir$ simd
перед циклом, и векторным. Но мой вопрос: почему wasn ' t он векторизации или преобразован в memcpy
или memset
? Это, очевидно, внутренняя петля.