public unsafe void CouldCallHiLevelSgemm() { var mnk = 2; var x = new float[mnk * mnk]; for (int i = 0; i < mnk * mnk; i++) { x[i] = (i + 1); } var h = x.AsMemory().Pin(); var c = new float[mnk * mnk]; var hc = c.AsMemory().Pin(); CBLAS.Sgemm(LAYOUT.RowMajor, TRANSPOSE.NoTrans, TRANSPOSE.NoTrans, mnk, mnk, mnk, alpha: 1f, (float *)h.Pointer, mnk, (float *)h.Pointer, mnk, beta: 0, (float *)hc.Pointer, mnk); }
public static unsafe void Sample() { BlasNumThreads = 1; var mnk = 2; var x = new float[mnk * mnk]; var c = new float[mnk * mnk]; for (int i = 0; i < mnk * mnk; i++) { x[i] = (i + 1); } fixed(float *xP = &x[0]) fixed(float *cP = &c[0]) { CBLAS.Sgemm(LAYOUT.RowMajor, TRANSPOSE.NoTrans, TRANSPOSE.NoTrans, mnk, mnk, mnk, alpha: 1f, xP, mnk, xP, mnk, beta: 0, cP, mnk); } }