Avatar
func testCopy_BLAS() { let stride = 2 let c = 100_000_000 let a = [Float](repeating: 1, count: c) var b = [Float](repeating: 0, count: c/stride) measure { cblas_scopy(Int32(c/stride), a, Int32(stride), &b, 1) } } func testCopy_vDSP() { let stride = 2 let c = 100_000_000 let a = [Float](repeating: 1, count: c) var b = [Float](repeating: 0, count: c/stride) measure { vDSP_mmov(a, &b, vDSP_Length(c/stride), 1, vDSP_Length(stride), 1) } } vDSPって内部はBLASなんじゃないのと思ってたんですがベクトルコピーはvDSPのほうが速かった。 vDSPの方はストライド二倍にすると所要時間が半分になるけどBLASはそこまで行かない。
4:35 AM
vDSPはマイナスストライド使えないんですが下手するとvDSP_vrvrs呼んだほうが速いレベル