1 Star 0 Fork 1

王布衣 / num

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
arithmetics_add.go 1.15 KB
一键复制 编辑 原始数据 按行查看 历史
王布衣 提交于 2024-03-09 08:10 . 新增加法计算基准测试代码
package num
import (
"gitee.com/quant1x/num/x32"
"gitee.com/quant1x/num/x64"
//"github.com/mjibson/go-cuda"
"slices"
)
// Add arithmetics 加法
func Add[T Number](x []T, y any) []T {
return v1Add(x, y)
}
func v1Add[T Number](x []T, y any) []T {
return BinaryOperations(x, y, x32.Add, x64.Add, __add_go[T])
}
func __add_go[T Number](x, y []T) []T {
x = slices.Clone(x)
for i := 0; i < len(x); i++ {
x[i] += y[i]
}
return x
}
//func v2AddFloat64(x, y []float64) []float64 {
// cuda.Init(0)
// defer cuda.Cleanup()
//
// size := 1024
// a := cuda.MakeFloat32s(size)
// defer cuda.Free(unsafe.Pointer(a))
//
// b := cuda.MakeFloat32s(size)
// defer cuda.Free(unsafe.Pointer(b))
//
// c := cuda.MakeFloat32s(size)
// defer cuda.Free(unsafe.Pointer(c))
//
// for i := 0; i < size; i++ {
// a[i] = float32(i)
// b[i] = float32(size - i)
// }
//
// add := cuda.NewFunction(`
// __global__ void add(float *a, float *b, float *c) {
// int i = threadIdx.x;
// c[i] = a[i] + b[i];
// }
// `)
//
// add.Launch(size, 1, 1, a, b, c)
//
// for i := 0; i < size; i++ {
// fmt.Printf("%.2f + %.2f = %.2f\n", a[i], b[i], c[i])
// }
//}
Go
1
https://gitee.com/quant1x/num.git
git@gitee.com:quant1x/num.git
quant1x
num
num
v0.3.1

搜索帮助