1
내가 여기서 무엇을 하든지 DGEMM에서 올바른 결과를 얻지 못하는 것 같습니다. 나는 CBLAS와 놀고있다.DGEMM 이후의 마지막 행의 0 값
다음은 관련 코드입니다.
주요 기능 : 여기
int main()
{
struct Matrix* foo = new(Matrix, 3, 2, (double[6]){ 4.0, 4.0, 4.0, 4.0, 4.0, 4.0 });
struct Matrix* bar = new(Matrix, 2, 3, (double[6]){ 4.0, 4.0, 4.0, 4.0, 4.0, 4.0 });
struct Matrix* baz = matrix_mul(foo, bar);
...
는 matrix_mul입니다 : 내가 기대하지만
32.0 32.0 32.0
32.0 32.0 32.0
0.0 0.0 0.0
:
void* matrix_mul(struct Matrix* self, struct Matrix* b)
{
struct Matrix* c;
size_t m = self->m;
size_t n = b->n;
printf("%u,%u\n", m, n);
c = new(Matrix, m, n, NULL);
cblas_dgemm(CblasRowMajor, CblasNoTrans, CblasNoTrans, m, n,
self->m, 1.0, self->data, self->m, b->data, b->m, 0.0,
c->data, m);
return c;
}
내가이 얻을 결과를 인쇄 할 때
32.0 32.0 32.0
32.0 32.0 32.0
32.0 32.0 32.0
dgemm을 잘못 사용하면 어떻게됩니까?
내가 올린 질문을 올렸을 때 틀렸어. 내 질문이 업데이트 될 것입니다. – csnate