Я тестирую, могу ли я даже использовать функции GSL в областях вычисления OpenACC. В main.c я попробовать следующее (глупое) для цикла, который использует функцию GSL,OpenACC совместим с научной библиотекой GNU (GSL)?
#pragma acc kernels
for(int i=0; i<100; i++){
gsl_matrix *C = gsl_matrix_calloc(10, 10);
gsl_matrix_free(C);
}
который выделяет память для 10x10 матрицы нулей, а затем освобождает память, в 100 раз. Однако, когда я компилирую,
pgcc -pg -fast -acc -Minfo=all,intensity -lgsl -lgslcblas -lm -o Main Main.c
Я получаю следующие сообщения,
PGC-S-0155-Procedures called in a compute region must have acc routine information: gsl_matrix_calloc (Main.c: 60)
PGC-S-0155-Accelerator region ignored; see -Minfo messages (Main.c: 57)
main:
57, Accelerator region ignored
58, Intensity = 1.00
Loop not vectorized/parallelized: contains call
60, Accelerator restriction: call to 'gsl_matrix_calloc' with no acc routine information
В частности, сделать первые и последние сообщения относительно «согласно обычной информации», означает, что это не представляется возможным использовать функции GSL в пределах соответствующих вычислительных регионов?