diff --git a/include/test.hpp b/include/test.hpp index 7667032..bbee2d5 100644 --- a/include/test.hpp +++ b/include/test.hpp @@ -1,14 +1,14 @@ #ifndef _TEST_KERNELS_H_ #define _TEST_KERNELS_H_ -#include +#include namespace base16384 { class test { public: // base16384_test_kernels_basic is a demo calculation that implements // mod, bit, plus and mul calculations. - SYCL_EXTERNAL static uint8_t kernels_basic(uint8_t in); + SYCL_EXTERNAL static std::uint8_t kernels_basic(uint8_t in); }; } // namespace base16384 diff --git a/libs/test_kernels.cpp b/libs/test_kernels.cpp index 94d9a73..f563c61 100644 --- a/libs/test_kernels.cpp +++ b/libs/test_kernels.cpp @@ -1,10 +1,9 @@ -#include - +#include #include #include "test.hpp" -SYCL_EXTERNAL uint8_t base16384::test::kernels_basic(uint8_t in) { +SYCL_EXTERNAL std::uint8_t base16384::test::kernels_basic(uint8_t in) { in *= in; in %= 251; in ^= in >> 2; diff --git a/tests/basic.cpp b/tests/basic.cpp index 7b2a4ef..2fe9a49 100644 --- a/tests/basic.cpp +++ b/tests/basic.cpp @@ -100,6 +100,17 @@ int main() { for (int i = 0; i < std::min(N, 64); i++) std::cout << " " << static_cast(data[i]); std::cout << "..." << std::endl; + // Verify GPU basic parallel result + for (int i = 0; i < N; i++) { + if (data[i] != cpu_data[i]) { + std::cerr << "GPU 基本并行结果验证失败:位置 " << i << " 期望值 " + << static_cast(cpu_data[i]) << " 实际值 " << static_cast(data[i]) + << std::endl; + sycl::free(data, q); + return -1; + } + } + std::copy(initial_data.cbegin(), initial_data.cend(), data); start_time = std::chrono::high_resolution_clock::now(); @@ -122,6 +133,17 @@ int main() { for (int i = 0; i < std::min(N, 64); i++) std::cout << " " << static_cast(data[i]); std::cout << "..." << std::endl; + // Verify GPU advanced parallel result + for (int i = 0; i < N; i++) { + if (data[i] != cpu_data[i]) { + std::cerr << "GPU 高级并行结果验证失败:位置 " << i << " 期望值 " + << static_cast(cpu_data[i]) << " 实际值 " << static_cast(data[i]) + << std::endl; + sycl::free(data, q); + return -1; + } + } + sycl::free(data, q); return 0;