From b80e19fef5298ae2cc6f82e8fc368dbbbf7d6e79 Mon Sep 17 00:00:00 2001 From: pqzbgempc <2193876517@qq.com> Date: Sat, 30 Nov 2024 00:55:41 +0800 Subject: [PATCH] ADD file via upload --- NENO2.cpp | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 NENO2.cpp diff --git a/NENO2.cpp b/NENO2.cpp new file mode 100644 index 0000000..17c8519 --- /dev/null +++ b/NENO2.cpp @@ -0,0 +1,49 @@ +#include +#include +#include +#include + +#define SIZE 1024 + + +void vector_add_optimized(float* A, float* B, float* C, int size) { + int i; + for (i = 0; i < size - 3; i += 4) { + + float32x4_t A_vec = vld1q_f32(A + i); + float32x4_t B_vec = vld1q_f32(B + i); + + float32x4_t C_vec = vaddq_f32(A_vec, B_vec); + + vst1q_f32(C + i, C_vec); + } + + for (; i < size; i++) { + C[i] = A[i] + B[i]; + } +} + +int main() { + float A[SIZE], B[SIZE], C[SIZE]; + srand(time(NULL)); + + + for (int i = 0; i < SIZE; i++) { + A[i] = rand() % 100; + B[i] = rand() % 100; + } + + + clock_t start, end; + start = clock(); + + + vector_add_optimized(A, B, C, SIZE); + + end = clock(); + double time_spent = (double)(end - start) / CLOCKS_PER_SEC; + + printf("NEON优化向量加法的运行时间为: %lf 秒\n", time_spent); + + return 0; +}