OSDN Git Service

new repo
[bytom/vapor.git] / vendor / gonum.org / v1 / gonum / blas / testblas / dgemmbench.go
1 package testblas
2
3 import (
4         "testing"
5
6         "golang.org/x/exp/rand"
7
8         "gonum.org/v1/gonum/blas"
9 )
10
11 func DgemmBenchmark(b *testing.B, dgemm Dgemmer, m, n, k int, tA, tB blas.Transpose) {
12         a := make([]float64, m*k)
13         for i := range a {
14                 a[i] = rand.Float64()
15         }
16         bv := make([]float64, k*n)
17         for i := range bv {
18                 bv[i] = rand.Float64()
19         }
20         c := make([]float64, m*n)
21         for i := range c {
22                 c[i] = rand.Float64()
23         }
24         var lda, ldb int
25         if tA == blas.Trans {
26                 lda = m
27         } else {
28                 lda = k
29         }
30         if tB == blas.Trans {
31                 ldb = k
32         } else {
33                 ldb = n
34         }
35         ldc := n
36         b.ResetTimer()
37         for i := 0; i < b.N; i++ {
38                 dgemm.Dgemm(tA, tB, m, n, k, 3.0, a, lda, bv, ldb, 1.0, c, ldc)
39         }
40 }