Browse Source

Special case beta is one.

tags/v0.3.29
Chip Kerchner 1 year ago
parent
commit
8541b25e1d
2 changed files with 12 additions and 0 deletions
  1. +10
    -0
      kernel/power/sbgemv_common.c
  2. +2
    -0
      kernel/power/sbgemv_n.c

+ 10
- 0
kernel/power/sbgemv_common.c View File

@@ -252,6 +252,11 @@ FORCEINLINE void copy_y_beta(BLASLONG n, FLOAT *src, FLOAT *dest, BLASLONG inc_s
{
if (beta == 0) {
memset(dest, 0, sizeof(FLOAT) * n);
} else if (beta == 1) {
for (BLASLONG i = 0; i < n; i++) {
*dest++ = *src;
src += inc_src;
}
} else {
for (BLASLONG i = 0; i < n; i++) {
*dest++ = *src * beta;
@@ -267,6 +272,11 @@ FORCEINLINE void copy_y(BLASLONG n, FLOAT *src, FLOAT *dest, BLASLONG inc_src, F
*dest = *src++;
dest += inc_src;
}
} else if (beta == 1) {
for (BLASLONG i = 0; i < n; i++) {
*dest += *src++;
dest += inc_src;
}
} else {
for (BLASLONG i = 0; i < n; i++) {
*dest = *src++ + (beta * *dest);


+ 2
- 0
kernel/power/sbgemv_n.c View File

@@ -31,6 +31,8 @@ static void BF16GEMV_N_beta(BLASLONG n, FLOAT *output_vector, FLOAT *input_vecto
{
if (beta == 0) {
memset(output_vector, 0, sizeof(FLOAT) * n);
} else if ((output_vector != input_vector) && (beta == 1)) {
memcpy(output_vector, input_vector, sizeof(FLOAT) * n);
} else {
vec_f32 b = { beta, beta, beta, beta };



Loading…
Cancel
Save