Сочетание объявления и вставки в цикле simd - PullRequest
1 голос
/ 09 мая 2019

Я уже некоторое время думал о том, чтобы встроить или использовать declare simd в цикле simd.Я наткнулся на эту статью , в которой у ОП есть аналогичный вопрос, но ответ мне не совсем понятен.

У меня есть два вопроса:

1) Рассматривается ли оношибка, имеющая как declare simd(function_name), так и встроенную директиву типа !DIR$ ATTRIBUTES::FORCEINLINE(function_name).

2) Как узнать, какой использовать?

Базовый пример

!DIR$ ATTRIBUTES :: FORCEINLINE(call_insimd)
!$OMP DECLARE SIMD(call_insimd)
function call_insimd(a,b)  result(res)
implicit none 
real, intent(in) :: a,b 
real, intent(out):: res 
end function

В основном цикле

do i = 1,10000 
!dir$ forceinline

  ar(i) = call_insimd(gf(i),df(i)) 

enddo
...