[CCCL] 瘦身 + 补全: 移除 cudax/python/libcudacxx-tests 冗余文件, 新增 c2h 测试助手 + cmake 构建系统 + 8 个 CUDA thrust examples
变更摘要:
- 删除: cudax/ (783 files, 7.2M) — 实验性组件,竞赛不需要
- 删除: python/ (226 files, 2.0M) — Python 绑定,竞赛不需要
- 删除: libcudacxx/{test,benchmarks,codegen,cmake,share} (4432 files, 31M)
保留: libcudacxx/include/ (1463 headers, cuda::std 编译依赖)
- 新增: c2h/ (27 files) — CUB Catch2 测试辅助头文件,编译 243 个测试必需
- 新增: cmake/ (29 files) — CCCL 原生 CMake 构建系统
- 新增: thrust/examples/cuda/ (7 files) + cpp_integration/ (1 file)
async_reduce, custom_temporary_allocation, explicit_cuda_stream,
global_device_vector, range_view, unwrap_pointer, wrap_pointer, device
结果: cccl_upstream 从 74M→35M (瘦身 53%), 核心内容 100% 保留:
27/27 tuning headers, 78 benchmarks, 243 tests,
60 thrust examples, 18 CUB examples, 全部编译头文件
This commit is contained in:
@@ -1,56 +0,0 @@
|
||||
thrust_create_target(cudax.examples.thrust)
|
||||
|
||||
function(cudax_add_example target_name_var example_src)
|
||||
get_filename_component(example_name ${example_src} NAME_WE)
|
||||
|
||||
# The actual name of the test's target:
|
||||
set(example_target cudax.example.${example_name})
|
||||
set(${target_name_var} ${example_target} PARENT_SCOPE)
|
||||
|
||||
cccl_add_executable(${example_target} SOURCES "${example_src}" ADD_CTEST)
|
||||
target_link_libraries(
|
||||
${example_target}
|
||||
PRIVATE #
|
||||
cudax.compiler_interface
|
||||
cudax.examples.thrust
|
||||
)
|
||||
target_compile_options(
|
||||
${example_target}
|
||||
PRIVATE
|
||||
$<$<COMPILE_LANG_AND_ID:CUDA,NVIDIA>:--expt-relaxed-constexpr>
|
||||
$<$<COMPILE_LANG_AND_ID:CUDA,NVIDIA>:--extended-lambda>
|
||||
)
|
||||
target_include_directories(
|
||||
${example_target}
|
||||
PRIVATE "${CUB_SOURCE_DIR}/examples"
|
||||
)
|
||||
endfunction()
|
||||
|
||||
file(
|
||||
GLOB example_srcs
|
||||
RELATIVE "${cudax_SOURCE_DIR}/examples"
|
||||
CONFIGURE_DEPENDS
|
||||
*.cu
|
||||
*.cpp
|
||||
)
|
||||
|
||||
cccl_get_cudatoolkit()
|
||||
|
||||
# Example requires pinned_memory_resource.
|
||||
if (CUDAToolkit_VERSION VERSION_LESS 12.9)
|
||||
list(REMOVE_ITEM example_srcs async_buffer_add.cu cub_reduce.cu)
|
||||
endif()
|
||||
|
||||
foreach (example_src IN LISTS example_srcs)
|
||||
cudax_add_example(example_target "${example_src}")
|
||||
endforeach()
|
||||
|
||||
# FIXME: Enable MSVC
|
||||
if (cudax_ENABLE_CUDASTF AND NOT "MSVC" STREQUAL "${CMAKE_CXX_COMPILER_ID}")
|
||||
# STF examples are handled separately:
|
||||
add_subdirectory(stf)
|
||||
endif()
|
||||
|
||||
if (cudax_ENABLE_PLACES AND NOT "MSVC" STREQUAL "${CMAKE_CXX_COMPILER_ID}")
|
||||
add_subdirectory(places)
|
||||
endif()
|
||||
Reference in New Issue
Block a user