ricosjp / monolish

monolish: MONOlithic LInear equation Solvers for Highly-parallel architecture

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

impl. transpose matvec, matmul

t-hishinuma opened this issue · comments

I want to give modern and intuitive transposition information. But I have no idea how to implement it easily.

First, we create the following function as a prototype

matmul(A,B,C) // C=AB
matmul_TNN(A, B, C); // C=A^TB
matvec(A,x,y); // y = Ax
matvec_T(A, x, y); // y=A^Tx

This interface is not beautiful. However, it has the following advantages

  • It does not affect other functions.
  • Easy to trace with logger
  • Simple to implement FFI in the future.
  • When beautiful ideas appear in the future, these functions can be implemented wrapping it.

matmul_TNN(A, B, C); // C=A^TB

Transpose C is not implemented.
Therefore, change as follows.

matmul_TN(A, B, C); // C=A^T B^N

cusparse SpMM has bug? It need to take a lot of time..

I impl. GEMV and SpMV at 0.16.0
I impl. GEMM and SpMM at 0.16.1

this isssue is separlated: #115 #114