feat: CCCL CachingDeviceAllocator preload — 完整依赖链 288 files
从 cccl_upstream 递归追踪 cub/util_allocator.cuh 的全部 include 依赖: cub/ 9 files (config, util_*, version, detect_cuda_runtime) cuda/ libcudacxx type_traits, concepts, algorithm, iterator... nv/ target macros, preprocessor 总计 288 个头文件 (1.4MB),打包到 include/ 目录,编译时 -I include 即可完全脱离 CCCL 原始目录结构。 .cu 文件直接 #include <cub/util_allocator.cuh>, 走原版 CUB CachingDeviceAllocator,零 mock。 BI-V100 参数: growth=2 bins=[8..32] max_cached=8GB/device
This commit is contained in:
65
qwen3_6_scripts/cccl_preload/include/cub/version.cuh
Normal file
65
qwen3_6_scripts/cccl_preload/include/cub/version.cuh
Normal file
@@ -0,0 +1,65 @@
|
||||
// SPDX-FileCopyrightText: Copyright (c) 2011-2022, NVIDIA CORPORATION. All rights reserved.
|
||||
// SPDX-License-Identifier: BSD-3
|
||||
|
||||
/*! \file version.cuh
|
||||
* \brief Compile-time macros encoding CUB release version
|
||||
*
|
||||
* <cub/version.h> is the only CUB header that is guaranteed to
|
||||
* change with every CUB release.
|
||||
*
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
// For _CCCL_IMPLICIT_SYSTEM_HEADER
|
||||
#include <cuda/__cccl_config>
|
||||
|
||||
#if defined(_CCCL_IMPLICIT_SYSTEM_HEADER_GCC)
|
||||
# pragma GCC system_header
|
||||
#elif defined(_CCCL_IMPLICIT_SYSTEM_HEADER_CLANG)
|
||||
# pragma clang system_header
|
||||
#elif defined(_CCCL_IMPLICIT_SYSTEM_HEADER_MSVC)
|
||||
# pragma system_header
|
||||
#endif // no system header
|
||||
|
||||
#include <cuda/version>
|
||||
|
||||
/*! \def CUB_VERSION
|
||||
* \brief The preprocessor macro \p CUB_VERSION encodes the version
|
||||
* number of the CUB library as MMMmmmpp.
|
||||
*
|
||||
* \note CUB_VERSION is formatted as `MMMmmmpp`, which differs from `CCCL_VERSION` that uses `MMMmmmppp`.
|
||||
*
|
||||
* <tt>CUB_VERSION % 100</tt> is the sub-minor version.
|
||||
* <tt>CUB_VERSION / 100 % 1000</tt> is the minor version.
|
||||
* <tt>CUB_VERSION / 100000</tt> is the major version.
|
||||
*/
|
||||
#define CUB_VERSION 300500 // macro expansion with ## requires this to be a single value
|
||||
|
||||
/*! \def CUB_MAJOR_VERSION
|
||||
* \brief The preprocessor macro \p CUB_MAJOR_VERSION encodes the
|
||||
* major version number of the CUB library.
|
||||
*/
|
||||
#define CUB_MAJOR_VERSION (CUB_VERSION / 100000)
|
||||
|
||||
/*! \def CUB_MINOR_VERSION
|
||||
* \brief The preprocessor macro \p CUB_MINOR_VERSION encodes the
|
||||
* minor version number of the CUB library.
|
||||
*/
|
||||
#define CUB_MINOR_VERSION (CUB_VERSION / 100 % 1000)
|
||||
|
||||
/*! \def CUB_SUBMINOR_VERSION
|
||||
* \brief The preprocessor macro \p CUB_SUBMINOR_VERSION encodes the
|
||||
* sub-minor version number of the CUB library.
|
||||
*/
|
||||
#define CUB_SUBMINOR_VERSION (CUB_VERSION % 100)
|
||||
|
||||
/*! \def CUB_PATCH_NUMBER
|
||||
* \brief The preprocessor macro \p CUB_PATCH_NUMBER encodes the
|
||||
* patch number of the CUB library.
|
||||
*/
|
||||
#define CUB_PATCH_NUMBER 0
|
||||
|
||||
static_assert(CUB_MAJOR_VERSION == CCCL_MAJOR_VERSION);
|
||||
static_assert(CUB_MINOR_VERSION == CCCL_MINOR_VERSION);
|
||||
static_assert(CUB_SUBMINOR_VERSION == CCCL_PATCH_VERSION);
|
||||
Reference in New Issue
Block a user