Skip to content

Commit

Permalink
minor
Browse files Browse the repository at this point in the history
  • Loading branch information
syx committed Mar 31, 2024
1 parent e2b668d commit e1002f6
Showing 1 changed file with 57 additions and 57 deletions.
114 changes: 57 additions & 57 deletions ggml.c
Original file line number Diff line number Diff line change
Expand Up @@ -14414,29 +14414,29 @@ static void ggml_compute_forward_mul_mat_axpy_dense(
break;
}

// 获取锁

while (atomic_flag_test_and_set(&g_axpy_dense_lock)) {
// 如果锁已经被占用,则等待

}

float *res = (float *)(dst->data);
float *tmp = (float *)vy;
int i;


// 计算剩余的元素个数

int remainder = ne00 % 8;

#if defined(__AVX2__)
// 使用AVX指令进行向量化计算

for (i = 0; i < ne00 - remainder; i += 8) {
__m256 res_vec = _mm256_loadu_ps(res + i); // 加载res中的8个浮点数
__m256 tmp_vec = _mm256_loadu_ps(tmp + i); // 加载tmp中的8个浮点数
__m256 result = _mm256_add_ps(res_vec, tmp_vec); // 执行加法运算
_mm256_storeu_ps(res + i, result); // 存储结果到res中
__m256 res_vec = _mm256_loadu_ps(res + i);
__m256 tmp_vec = _mm256_loadu_ps(tmp + i);
__m256 result = _mm256_add_ps(res_vec, tmp_vec);
_mm256_storeu_ps(res + i, result);
}

// 处理剩余的元素

for (i = ne00 - remainder; i < ne00; i++) {
res[i] += tmp[i];
}
Expand Down Expand Up @@ -14581,10 +14581,10 @@ static void ggml_compute_forward_mul_mat_axpy(
#if defined(__AVX2__)
// 使用AVX指令进行向量化计算
for (i = 0; i < ne00 - remainder; i += 8) {
__m256 res_vec = _mm256_loadu_ps(res + i); // 加载res中的8个浮点数
__m256 tmp_vec = _mm256_loadu_ps(tmp + i); // 加载tmp中的8个浮点数
__m256 result = _mm256_add_ps(res_vec, tmp_vec); // 执行加法运算
_mm256_storeu_ps(res + i, result); // 存储结果到res中
__m256 res_vec = _mm256_loadu_ps(res + i);
__m256 tmp_vec = _mm256_loadu_ps(tmp + i);
__m256 result = _mm256_add_ps(res_vec, tmp_vec);
_mm256_storeu_ps(res + i, result);
}

// 处理剩余的元素
Expand Down Expand Up @@ -14728,19 +14728,19 @@ static void ggml_compute_forward_mul_mat_axpy_q8_0(
float *tmp = (float *)vy;
int i;

// 计算剩余的元素个数

int remainder = ne00 % 8;
#if defined(__AVX2__)
// 使用AVX指令进行向量化计算

for (i = 0; i < ne00 - remainder; i += 8)
{
__m256 res_vec = _mm256_loadu_ps(res + i); // 加载res中的8个浮点数
__m256 tmp_vec = _mm256_loadu_ps(tmp + i); // 加载tmp中的8个浮点数
__m256 result = _mm256_add_ps(res_vec, tmp_vec); // 执行加法运算
_mm256_storeu_ps(res + i, result); // 存储结果到res中
__m256 res_vec = _mm256_loadu_ps(res + i);
__m256 tmp_vec = _mm256_loadu_ps(tmp + i);
__m256 result = _mm256_add_ps(res_vec, tmp_vec);
_mm256_storeu_ps(res + i, result);
}

// 处理剩余的元素

for (i = ne00 - remainder; i < ne00; i++)
{
res[i] += tmp[i];
Expand Down Expand Up @@ -14884,19 +14884,19 @@ static void ggml_compute_forward_mul_mat_axpy_q4_1(
float *tmp = (float *)vy;
int i;

// 计算剩余的元素个数

int remainder = ne00 % 8;
#if defined(__AVX2__)
// 使用AVX指令进行向量化计算

for (i = 0; i < ne00 - remainder; i += 8)
{
__m256 res_vec = _mm256_loadu_ps(res + i); // 加载res中的8个浮点数
__m256 tmp_vec = _mm256_loadu_ps(tmp + i); // 加载tmp中的8个浮点数
__m256 result = _mm256_add_ps(res_vec, tmp_vec); // 执行加法运算
_mm256_storeu_ps(res + i, result); // 存储结果到res中
__m256 res_vec = _mm256_loadu_ps(res + i);
__m256 tmp_vec = _mm256_loadu_ps(tmp + i);
__m256 result = _mm256_add_ps(res_vec, tmp_vec);
_mm256_storeu_ps(res + i, result);
}

// 处理剩余的元素

for (i = ne00 - remainder; i < ne00; i++)
{
res[i] += tmp[i];
Expand Down Expand Up @@ -15040,19 +15040,19 @@ static void ggml_compute_forward_mul_mat_axpy_q5_1(
float *tmp = (float *)vy;
int i;

// 计算剩余的元素个数

int remainder = ne00 % 8;
#if defined(__AVX2__)
// 使用AVX指令进行向量化计算

for (i = 0; i < ne00 - remainder; i += 8)
{
__m256 res_vec = _mm256_loadu_ps(res + i); // 加载res中的8个浮点数
__m256 tmp_vec = _mm256_loadu_ps(tmp + i); // 加载tmp中的8个浮点数
__m256 result = _mm256_add_ps(res_vec, tmp_vec); // 执行加法运算
_mm256_storeu_ps(res + i, result); // 存储结果到res中
__m256 res_vec = _mm256_loadu_ps(res + i);
__m256 tmp_vec = _mm256_loadu_ps(tmp + i);
__m256 result = _mm256_add_ps(res_vec, tmp_vec);
_mm256_storeu_ps(res + i, result);
}

// 处理剩余的元素

for (i = ne00 - remainder; i < ne00; i++)
{
res[i] += tmp[i];
Expand Down Expand Up @@ -15194,19 +15194,19 @@ static void ggml_compute_forward_mul_mat_axpy_q4_0(
float *tmp = (float *)vy;
int i;

// 计算剩余的元素个数

int remainder = ne00 % 8;
#if defined(__AVX2__)
// 使用AVX指令进行向量化计算

for (i = 0; i < ne00 - remainder; i += 8)
{
__m256 res_vec = _mm256_loadu_ps(res + i); // 加载res中的8个浮点数
__m256 tmp_vec = _mm256_loadu_ps(tmp + i); // 加载tmp中的8个浮点数
__m256 result = _mm256_add_ps(res_vec, tmp_vec); // 执行加法运算
_mm256_storeu_ps(res + i, result); // 存储结果到res中
__m256 res_vec = _mm256_loadu_ps(res + i);
__m256 tmp_vec = _mm256_loadu_ps(tmp + i);
__m256 result = _mm256_add_ps(res_vec, tmp_vec);
_mm256_storeu_ps(res + i, result);
}

// 处理剩余的元素

for (i = ne00 - remainder; i < ne00; i++)
{
res[i] += tmp[i];
Expand Down Expand Up @@ -15343,19 +15343,19 @@ static void ggml_compute_forward_mul_mat_axpy_q5_0(
float *tmp = (float *)vy;
int i;

// 计算剩余的元素个数

int remainder = ne00 % 8;
#if defined(__AVX2__)
// 使用AVX指令进行向量化计算

for (i = 0; i < ne00 - remainder; i += 8)
{
__m256 res_vec = _mm256_loadu_ps(res + i); // 加载res中的8个浮点数
__m256 tmp_vec = _mm256_loadu_ps(tmp + i); // 加载tmp中的8个浮点数
__m256 result = _mm256_add_ps(res_vec, tmp_vec); // 执行加法运算
_mm256_storeu_ps(res + i, result); // 存储结果到res中
__m256 res_vec = _mm256_loadu_ps(res + i);
__m256 tmp_vec = _mm256_loadu_ps(tmp + i);
__m256 result = _mm256_add_ps(res_vec, tmp_vec);
_mm256_storeu_ps(res + i, result);
}

// 处理剩余的元素

for (i = ne00 - remainder; i < ne00; i++)
{
res[i] += tmp[i];
Expand Down Expand Up @@ -15479,28 +15479,28 @@ static void ggml_compute_forward_mul_mat_axpy_head(
break;
}

// 获取锁
/
while (atomic_flag_test_and_set(&g_axpy_head_lock)) {
// 如果锁已经被占用,则等待

}
float *res = (float *)(dst->data);
float *tmp = (float *)vy;
int i;


// 计算剩余的元素个数

int remainder = ne00 % 8;

#if defined(__AVX2__)
// 使用AVX指令进行向量化计算

for (i = 0; i < ne00 - remainder; i += 8) {
__m256 res_vec = _mm256_loadu_ps(res + i); // 加载res中的8个浮点数
__m256 tmp_vec = _mm256_loadu_ps(tmp + i); // 加载tmp中的8个浮点数
__m256 result = _mm256_add_ps(res_vec, tmp_vec); // 执行加法运算
_mm256_storeu_ps(res + i, result); // 存储结果到res中
__m256 res_vec = _mm256_loadu_ps(res + i);
__m256 tmp_vec = _mm256_loadu_ps(tmp + i);
__m256 result = _mm256_add_ps(res_vec, tmp_vec);
_mm256_storeu_ps(res + i, result);
}

// 处理剩余的元素

for (i = ne00 - remainder; i < ne00; i++) {
res[i] += tmp[i];
}
Expand Down

0 comments on commit e1002f6

Please sign in to comment.