두 개의 임의 길이 벡터 (일반적인 길이는 2048)를 갖기 위해 요소별로 곱하려고합니다. 따라서 모든 n에 대해 Z [n] = X [n] * Y [n]. 16BLAS의 벡터 곱셈과 catlas_saxpby가 제대로 작동하지 않습니다.
float inputX[4] = { 2, 4, 8, 16 };
float inputY[4] = { 2, 4, 8, 16 };
catlas_saxpby(4, 1, inputX, 1, 1, inputY, 1);
결과는 inputY로 전환, 그 결과 그들은 그것이 4를해야 곱한다면
4.000000, 8.000000, 16.000000, 32.000000
입니다 :
내가 테스트하는 설정이 코드는 매우 기본적인 , 64, 256. 그러나 그것이 추가되는 것처럼 보입니다.
그래서 내가 예상 한대로하지 못하고 있으며, 문서가 그것이 무엇을하고 있는지 파악할 수있는 충분한 정보를주지 못합니다.
아이디어가 있으십니까?
Apple's documentation for BLAS says this:
Computes the product of two vectors, scaling each one separately (single-precision).
void catlas_saxpby (
const int N,
const float alpha,
const float *X,
const int incX,
const float beta,
float *Y,
const int incY
);
Parameters
N
Number of elements in the vector.
alpha
Scaling factor for X.
X
Input vector X.
incX
Stride within X. For example, if incX is 7, every 7th element is used.
beta
Scaling factor for Y.
Y
Input vector Y.
incY
Stride within Y. For example, if incY is 7, every 7th element is used.
Discussion
On return, the contents of vector Y are replaced with the result.
네온 내장 함수 또는 for 루프를 사용하여 막힐 것으로 생각합니다. 나는 둘 다 시도하고 더 빠른 것을 보게 될 것입니다. –