У меня есть следующий код:
magma_int_t *h_ipiv;
magma_imalloc_cpu( &h_ipiv, k);
for (i=0;i<k;i++){
h_ipiv[i] = i;
}
magma_dgemm(MagmaTrans, MagmaNoTrans, N, n, m, 1.0, d_G2, m, d_A2, m, 0.0, d_QA, N, queue);
magma_dgemm(MagmaTrans, MagmaNoTrans, N, n, m, 1.0, d_G1, m, d_A1, m, -1.0, d_QA, N, queue);
magma_int_t info_getrs;
magma_dgetrs_gpu(MagmaTrans, Ngaps, n, d_M, N, h_ipiv, d_QA, N, &info_getrs);
В последней строке я получаю сообщение об ошибке double free or corruption (out): 0x000000001dd18540
. Я проверил массивы из magma_dgemm
, и они кажутся правильными. Размеры также являются правильными, потому что у меня был этот код на версии процессора Lapack, и они были одинаковыми. Таким образом, ошибка, кажется, на h_ipiv
, но я понятия не имею, что не так с h_ipiv
.
Есть идеи?