I find some errors when i compile with cuda 13.2.1, I tried/sd: c++14, but it didn’t work.
1>C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.2\include\cccl\thrust\detail\type_traits.h(43,1): error C2059: syntax error: ‘(’
1>C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.2\include\cccl\thrust\detail\type_traits.h(43,1): error C2143: syntax error: missing ‘;’ before ‘{’
1>C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.2\include\cccl\thrust\detail\type_traits.h(43,1): error C2447: ‘{’: missing function header (old-style formal list?)
1>C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.2\include\cccl\thrust\detail\type_traits\is_call_possible.h(35,1): error C2059: syntax error: ‘(’
1>C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.2\include\cccl\thrust\detail\type_traits\is_call_possible.h(35,1): error C2143: syntax error: missing ‘;’ before ‘{’
1>C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.2\include\cccl\thrust\detail\type_traits\is_call_possible.h(35,1): error C2447: ‘{’: missing function header (old-style formal list?)
1>C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.2\include\cccl\thrust\detail\type_traits\is_metafunction_defined.h(32,1): error C2059: syntax error: ‘(’
1>C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.2\include\cccl\thrust\detail\type_traits\is_metafunction_defined.h(32,1): error C2143: syntax error: missing ‘;’ before ‘{’
1>C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.2\include\cccl\thrust\detail\type_traits\is_metafunction_defined.h(32,1): error C2447: ‘{’: missing function header (old-style formal list?)
1>C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.2\include\cccl\thrust\detail\type_traits\is_thrust_pointer.h(23,1): error C2059: syntax error: ‘(’
1>C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.2\include\cccl\thrust\detail\type_traits\is_thrust_pointer.h(23,1): error C2143: syntax error: missing ‘;’ before ‘{’
1>C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.2\include\cccl\thrust\detail\type_traits\is_thrust_pointer.h(23,1): error C2447: ‘{’: missing function header (old-style formal list?)
1>C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.2\include\cccl\thrust\detail\execution_policy.h(15,1): error C2059: syntax error: ‘(’
1>C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.2\include\cccl\thrust\detail\execution_policy.h(15,1): error C2143: syntax error: missing ‘;’ before ‘{’
1>C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.2\include\cccl\thrust\detail\execution_policy.h(15,1): error C2447: ‘{’: missing function header (old-style formal list?)
1>C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.2\include\cccl\thrust\iterator\detail\any_system_tag.h(30,1): error C2059: syntax error: ‘(’
1>C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.2\include\cccl\thrust\iterator\detail\any_system_tag.h(30,1): error C2143: syntax error: missing ‘;’ before ‘{’
1>C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.2\include\cccl\thrust\iterator\detail\any_system_tag.h(30,1): error C2447: ‘{’: missing function header (old-style formal list?)
1>C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.2\include\cuda_runtime_api.h(13772,1): warning C4819: The file contains a character that cannot be represented in the current code page (936). Save the file in Unicode format to prevent data loss
1>C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.2\include\cuda_runtime_api.h(14259,1): warning C4819: The file contains a character that cannot be represented in the current code page (936). Save the file in Unicode format to prevent data loss
1>C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.2\include\cccl\cub\util_macro.cuh(24,1): error C2059: syntax error: ‘(’
1>C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.2\include\cccl\cub\util_macro.cuh(24,1): error C2143: syntax error: missing ‘;’ before ‘{’
1>C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.2\include\cccl\cub\util_macro.cuh(24,1): error C2447: ‘{’: missing function header (old-style formal list?)
1>C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.2\include\cuda_runtime_api.h(13772,1): warning C4819: The file contains a character that cannot be represented in the current code page (936). Save the file in Unicode format to prevent data loss
1>C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.2\include\cuda_runtime_api.h(14259,1): warning C4819: The file contains a character that cannot be represented in the current code page (936). Save the file in Unicode format to prevent data loss
1>C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.2\include\cuda_runtime_api.h(13772,1): warning C4819: The file contains a character that cannot be represented in the current code page (936). Save the file in Unicode format to prevent data loss
1>C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.2\include\cuda_runtime_api.h(14259,1): warning C4819: The file contains a character that cannot be represented in the current code page (936). Save the file in Unicode format to prevent data loss
1>C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.2\include\cccl\cub\util_arch.cuh(35,1): error C2059: syntax error: ‘(’
1>C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.2\include\cccl\cub\util_arch.cuh(35,1): error C2143: syntax error: missing ‘;’ before ‘{’
1>C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.2\include\cccl\cub\util_arch.cuh(35,1): error C2447: ‘{’: missing function header (old-style formal list?)
1>C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.2\include\cccl\cub\util_debug.cuh(83,1): error C2059: syntax error: ‘(’
1>C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.2\include\cccl\cub\util_debug.cuh(83,1): error C2143: syntax error: missing ‘;’ before ‘{’
1>C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.2\include\cccl\cub\util_debug.cuh(83,1): error C2447: ‘{’: missing function header (old-style formal list?)
1>C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.2\include\cccl\thrust\system\cuda\config.h(98,1): error C2059: syntax error: ‘(’
1>C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.2\include\cccl\thrust\system\cuda\config.h(98,1): error C2143: syntax error: missing ‘;’ before ‘{’
1>C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.2\include\cccl\thrust\system\cuda\config.h(98,1): error C2447: ‘{’: missing function header (old-style formal list?)
1>C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.2\include\cccl\thrust\system\cuda\config.h(121,1): error C2059: syntax error: ‘(’
1>C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.2\include\cccl\thrust\system\cuda\config.h(121,1): error C2143: syntax error: missing ‘;’ before ‘{’
1>C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.2\include\cccl\thrust\system\cuda\config.h(121,1): error C2447: ‘{’: missing function header (old-style formal list?)
1>C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.2\include\cccl\thrust\detail\alignment.h(36,1): error C2059: syntax error: ‘(’
1>C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.2\include\cccl\thrust\detail\alignment.h(36,1): error C2143: syntax error: missing ‘;’ before ‘{’
1>C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.2\include\cccl\thrust\detail\alignment.h(36,1): error C2447: ‘{’: missing function header (old-style formal list?)
1>C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.2\include\cccl\thrust\detail\execute_with_allocator_fwd.h(31,1): error C2059: syntax error: ‘(’
1>C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.2\include\cccl\thrust\detail\execute_with_allocator_fwd.h(31,1): error C2143: syntax error: missing ‘;’ before ‘{’
1>C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.2\include\cccl\thrust\detail\execute_with_allocator_fwd.h(31,1): error C2447: ‘{’: missing function header (old-style formal list?)
1>C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.2\include\cccl\thrust\detail\allocator_aware_execution_policy.h(35,1): error C2059: syntax error: ‘(’
1>C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.2\include\cccl\thrust\detail\allocator_aware_execution_policy.h(35,1): error C2143: syntax error: missing ‘;’ before ‘{’
1>C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.2\include\cccl\thrust\detail\allocator_aware_execution_policy.h(35,1): error C2447: ‘{’: missing function header (old-style formal list?)
1>C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.2\include\cccl\thrust\system\detail\sequential\execution_policy.h(16,1): error C2059: syntax error: ‘(’
1>C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.2\include\cccl\thrust\system\detail\sequential\execution_policy.h(16,1): error C2143: syntax error: missing ‘;’ before ‘{’
1>C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.2\include\cccl\thrust\system\detail\sequential\execution_policy.h(16,1): error C2447: ‘{’: missing function header (old-style formal list?)
1>C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.2\include\cccl\thrust\detail\seq.h(17,1): error C2059: syntax error: ‘(’
1>C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.2\include\cccl\thrust\detail\seq.h(17,1): error C2143: syntax error: missing ‘;’ before ‘{’
1>C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.2\include\cccl\thrust\detail\seq.h(17,1): error C2447: ‘{’: missing function header (old-style formal list?)
1>C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.2\include\cccl\cub\util_policy_wrapper_t.cuh(9,1): error C2059: syntax error: ‘(’
1>C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.2\include\cccl\cub\util_policy_wrapper_t.cuh(9,1): error C2143: syntax error: missing ‘;’ before ‘{’
1>C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.2\include\cccl\cub\util_policy_wrapper_t.cuh(9,1): error C2447: ‘{’: missing function header (old-style formal list?)
1>C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.2\include\cccl\cub\detail\type_traits.cuh(40,1): error C2059: syntax error: ‘(’
1>C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.2\include\cccl\cub\detail\type_traits.cuh(40,1): error C2143: syntax error: missing ‘;’ before ‘{’
1>C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.2\include\cccl\cub\detail\type_traits.cuh(40,1): error C2447: ‘{’: missing function header (old-style formal list?)
1>C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.2\include\cccl\cub\detail\uninitialized_copy.cuh(21,1): error C2059: syntax error: ‘(’
1>C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.2\include\cccl\cub\detail\uninitialized_copy.cuh(21,1): error C2143: syntax error: missing ‘;’ before ‘{’
1>C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.2\include\cccl\cub\detail\uninitialized_copy.cuh(21,1): error C2447: ‘{’: missing function header (old-style formal list?)
1>C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.2\include\cccl\thrust\iterator\detail\any_assign.h(29,1): error C2059: syntax error: ‘(’
1>C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.2\include\cccl\thrust\iterator\detail\any_assign.h(29,1): error C2143: syntax error: missing ‘;’ before ‘{’
1>C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.2\include\cccl\thrust\iterator\detail\any_assign.h(29,1): error C2447: ‘{’: missing function header (old-style formal list?)
1>C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.2\include\cccl\cub\util_type.cuh(41,1): error C2059: syntax error: ‘(’
1>C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.2\include\cccl\cub\util_type.cuh(41,1): error C2143: syntax error: missing ‘;’ before ‘{’
1>C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.2\include\cccl\cub\util_type.cuh(41,1): error C2447: ‘{’: missing function header (old-style formal list?)
1>C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.2\include\cccl\cub\util_type.cuh(899,44): warning C4003: not enough arguments for function-like macro invocation ‘max’
1>C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.2\include\cccl\cub\util_temporary_storage.cuh(28,1): error C2059: syntax error: ‘(’
1>C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.2\include\cccl\cub\util_temporary_storage.cuh(28,1): error C2143: syntax error: missing ‘;’ before ‘{’
1>C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.2\include\cccl\cub\util_temporary_storage.cuh(28,1): error C2447: ‘{’: missing function header (old-style formal list?)
1>C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.2\include\cccl\cub\util_device.cuh(47,1): error C2059: syntax error: ‘(’
1>C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.2\include\cccl\cub\util_device.cuh(47,1): error C2143: syntax error: missing ‘;’ before ‘{’
1>C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.2\include\cccl\cub\util_device.cuh(47,1): error C2447: ‘{’: missing function header (old-style formal list?)
1>C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.2\include\cccl\thrust\system\detail\errno.h(34,1): error C2059: syntax error: ‘(’
1>C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.2\include\cccl\thrust\system\detail\errno.h(34,1): error C2143: syntax error: missing ‘;’ before ‘{’
1>C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.2\include\cccl\thrust\system\detail\errno.h(34,1): error C2447: ‘{’: missing function header (old-style formal list?)
1>C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.2\include\cccl\thrust\system\error_code.h(40,1): error C2059: syntax error: ‘(’
1>C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.2\include\cccl\thrust\system\error_code.h(40,1): error C2143: syntax error: missing ‘;’ before ‘{’
1>C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.2\include\cccl\thrust\system\error_code.h(40,1): error C2447: ‘{’: missing function header (old-style formal list?)
1>C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.2\include\cccl\thrust\tuple.h(44,1): error C2059: syntax error: ‘(’
1>C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.2\include\cccl\thrust\tuple.h(44,1): error C2143: syntax error: missing ‘;’ before ‘{’
1>C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.2\include\cccl\thrust\tuple.h(44,1): error C2447: ‘{’: missing function header (old-style formal list?)
1>C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.2\include\cccl\thrust\detail\functional\actor.h(45,1): error C2059: syntax error: ‘(’
1>C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.2\include\cccl\thrust\detail\functional\actor.h(45,1): error C2143: syntax error: missing ‘;’ before ‘{’
1>C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.2\include\cccl\thrust\detail\functional\actor.h(45,1): error C2447: ‘{’: missing function header (old-style formal list?)
1>C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.2\include\cccl\thrust\functional.h(44,1): error C2059: syntax error: ‘(’
1>C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.2\include\cccl\thrust\functional.h(44,1): error C2143: syntax error: missing ‘;’ before ‘{’
1>C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.2\include\cccl\thrust\functional.h(44,1): error C2447: ‘{’: missing function header (old-style formal list?)
1>C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.2\include\cccl\thrust\detail\functional\operators.h(43,1): error C2059: syntax error: ‘(’
1>C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.2\include\cccl\thrust\detail\functional\operators.h(43,1): error C2143: syntax error: missing ‘;’ before ‘{’
1>C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.2\include\cccl\thrust\detail\functional\operators.h(43,1): error C2447: ‘{’: missing function header (old-style formal list?)
1>C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.2\include\cccl\thrust\detail\type_traits\is_commutative.h(32,1): error C2059: syntax error: ‘(’
1>C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.2\include\cccl\thrust\detail\type_traits\is_commutative.h(32,1): error C2143: syntax error: missing ‘;’ before ‘{’
1>C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.2\include\cccl\thrust\detail\type_traits\is_commutative.h(32,1): error C2447: ‘{’: missing function header (old-style formal list?)
1>C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.2\include\cccl\thrust\system\detail\error_category.inl(35,1): error C2059: syntax error: ‘(’
1>C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.2\include\cccl\thrust\system\detail\error_category.inl(35,1): error C2143: syntax error: missing ‘;’ before ‘{’
1>C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.2\include\cccl\thrust\system\detail\error_category.inl(35,1): error C2447: ‘{’: missing function header (old-style formal list?)
1>C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.2\include\cccl\thrust\system\detail\error_code.inl(31,1): error C2059: syntax error: ‘(’
1>C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.2\include\cccl\thrust\system\detail\error_code.inl(31,1): error C2143: syntax error: missing ‘;’ before ‘{’
1>C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.2\include\cccl\thrust\system\detail\error_code.inl(31,1): error C2447: ‘{’: missing function header (old-style formal list?)
1>C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.2\include\cccl\thrust\system\detail\error_condition.inl(32,1): error C2059: syntax error: ‘(’
1>C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.2\include\cccl\thrust\system\detail\error_condition.inl(32,1): error C2143: syntax error: missing ‘;’ before ‘{’
1>C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.2\include\cccl\thrust\system\detail\error_condition.inl(32,1): error C2447: ‘{’: missing function header (old-style formal list?)
1>C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.2\include\cccl\thrust\system\cuda\error.h(35,1): error C2059: syntax error: ‘(’
1>C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.2\include\cccl\thrust\system\cuda\error.h(35,1): error C2143: syntax error: missing ‘;’ before ‘{’
1>C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.2\include\cccl\thrust\system\cuda\error.h(35,1): fatal error C1003: error count exceeds 100; stopping compilation
the code is as follows;
// 文件名: thrust_sort_benchmark.cu
#include <thrust/host_vector.h>
#include <thrust/device_vector.h>
#include <thrust/sort.h>
#include <thrust/copy.h>
#include <iostream>
#include <cstdlib>
#include <ctime>
#include <chrono>
#include <algorithm>
int main() {
// 1. 设置测试数据量
const int N = 50 * 1000 * 1000; // 5千万个整数
std::cout << "正在对 " << N << " 个随机整数进行排序测试...\n";
// 2. 生成随机数据
std::srand(static_cast<unsigned int>(std::time(nullptr)));
thrust::host_vector<int> h_vec(N);
for (int i = 0; i < N; ++i) {
h_vec[i] = std::rand() % N; // 生成 0 到 N-1 之间的随机整数
}
// 3. 将数据拷贝到GPU
thrust::device_vector<int> d_vec = h_vec;
// 4. GPU 排序 (thrust::sort)
auto gpu_start = std::chrono::high_resolution_clock::now();
thrust::sort(d_vec.begin(), d_vec.end());
auto gpu_end = std::chrono::high_resolution_clock::now();
std::chrono::duration<double, std::milli> gpu_sort_time = gpu_end - gpu_start;
// 5. CPU 排序 (std::sort) 作为性能对比基准
thrust::host_vector<int> h_vec_copy = h_vec; // 拷贝一份用于CPU排序,避免GPU排序影响
auto cpu_start = std::chrono::high_resolution_clock::now();
std::sort(h_vec_copy.begin(), h_vec_copy.end());
auto cpu_end = std::chrono::high_resolution_clock::now();
std::chrono::duration<double, std::milli> cpu_sort_time = cpu_end - cpu_start;
// 6. 结果验证 (从GPU拷贝回部分数据检查)
thrust::host_vector<int> sorted_h_vec = d_vec;
bool is_sorted = true;
for (int i = 1; i < sorted_h_vec.size(); ++i) {
if (sorted_h_vec[i] < sorted_h_vec[i - 1]) {
is_sorted = false;
break;
}
}
// 7. 输出结果
std::cout << "\n========== 测试结果 ==========\n";
std::cout << "排序结果验证: " << (is_sorted ? "通过 ✓" : "失败 ✗") << "\n";
std::cout << "GPU 排序耗时 (thrust::sort): " << gpu_sort_time.count() << " ms\n";
std::cout << "CPU 排序耗时 (std::sort) : " << cpu_sort_time.count() << " ms\n";
std::cout << "加速比 (CPU耗时/GPU耗时) : " << (cpu_sort_time.count() / gpu_sort_time.count()) << "x\n";
std::cout << "==============================\n";
// 8. 打印部分排序结果示例
std::cout << "\n排序结果示例 (前10个元素):\n";
for (int i = 0; i < 10 && i < sorted_h_vec.size(); ++i) {
std::cout << sorted_h_vec[i] << " ";
}
std::cout << "\n...\n";
return 0;
}