benchmark_test.go 612 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. package flow_test
  2. import (
  3. "math/rand"
  4. "os"
  5. "strconv"
  6. "testing"
  7. "dev.hexasoftware.com/x/flow"
  8. )
  9. var (
  10. vecsize = 10
  11. )
  12. func init() {
  13. var err error
  14. vecsizeEnv := os.Getenv("VECSIZE")
  15. if vecsizeEnv != "" {
  16. vecsize, err = strconv.Atoi(vecsizeEnv)
  17. if err != nil {
  18. panic(err)
  19. }
  20. }
  21. }
  22. func BenchmarkMul(b *testing.B) {
  23. f := flow.New()
  24. v1 := f.Variable(randvec())
  25. v2 := f.Variable(randvec())
  26. mulop := f.Op("vecmul", v1, v2)
  27. for i := 0; i < b.N; i++ {
  28. f.Run(mulop)
  29. }
  30. }
  31. func randvec() []float32 {
  32. r := make([]float32, vecsize)
  33. for i := range r {
  34. r[i] = rand.Float32()
  35. }
  36. return r
  37. }