1
0

simd_avx512.go 567 B

1234567891011121314151617181920212223242526272829
  1. //go:build amd64
  2. package cpu
  3. // hasAVX512Kernel signals whether the AVX-512 assembly implementation is
  4. // available in this build tag.
  5. const hasAVX512Kernel = true
  6. //go:noescape
  7. func dotAVX512(a *float32, b *float32, n int) float32
  8. //go:noescape
  9. func axpyAVX512(alpha float32, x *float32, y *float32, n int)
  10. func dotFloat32AVX512(a, b []float32) float32 {
  11. if len(a) == 0 {
  12. return 0
  13. }
  14. return dotAVX512(&a[0], &b[0], len(a))
  15. }
  16. func axpyFloat32AVX512(alpha float32, x, y []float32) {
  17. if len(x) == 0 {
  18. return
  19. }
  20. axpyAVX512(alpha, &x[0], &y[0], len(x))
  21. }