Сегодня я обнаружил это в файле примера, предоставленном мне компанией:
void mySgemm( int m, int n, int k, float alpha, float beta, float a[m][n], float b[n][k], float c[m][k], int accelerate )
Вызывается с:
a_cpu = malloc(..);
b_cpu = malloc(..);
c_cpu = malloc(..);
mySgemm(m, n, k, a, b, a_cpu, b_cpu, c_cpu, true);
Я не могу скомпилировать свой собственный подобный пример, честно говоря, я никогда даже не видел, чтобы кто-то брал динамический массив и формировал его как таковой, используя сами параметры функции.
Это законный звонок?
Что меня смущает, так это то, что в функции mySgemm
они обращаются к a
,b
,c
как к двойным массивам, поэтому массив по существу изменяется!?