Я новичок в OpenACC, который представляет собой новый стандарт программирования для ускорения графического процессора, а также для ЦП. Насколько мне известно, OpenACC - это язык, который является директивой компилятора, напрямую мы можем ускорить код, когда захотим, без изменения всего кода. Этот стандарт программирования будет работать и для GPU, в отличие от OpenMP.
Теперь у меня возникают сомнения ...
у нас есть OpenCL для ускорения, теперь OpenACC (который очень прост в использовании, просто давая подсказки компилятору). Для ускорения хост-программы мы можем просто указать директивы компилятора, а что если у нас есть ядро? т.е. теперь я хочу написать свой код для GPU (c-language), что мне делать? как OpenCL, мне нужно писать example.c и example.cl ?? тогда нужно добавить директивы компилятора OpenACC? или как иначе? если это так, то какой здесь смысл OpenACC, потому что мы пишем оба файла * .c и * .cl (нам нужно проверить все ограничения памяти и все для написания OpenCL, что является сложной работой).