Files
project_6/cccl_upstream/c/parallel/src/util/build_utils.h
EngineX CI 56fd68e7dd [INFRA] Import NVIDIA/CCCL upstream as optimization reference library
CCCL (CUDA C++ Core Libraries) provides:
- CUB: device/block/warp-level GPU primitives (reduce, scan, sort, topk)
- Thrust: high-level parallel algorithms (transform_reduce, sort, scan)
- libcudacxx: CUDA C++ standard library (atomics, barriers, memory)
- cudax: experimental features (memory resources, allocators)
- Tuning policies: per-SM hardware-specific algorithm parameters

Competition optimization vectors mapped to CCCL:
- Output TPS (83% weight): warp_reduce, block_reduce, device_topk
- Input TPS (14% weight): device_scan, block_load, prefetch
- Cache TPS (3% weight): prefix caching strategy patterns
- Memory (0.9 util): pooled/cached/buddy allocators

Source: https://github.com/NVIDIA/cccl (shallow clone, HEAD only)
License: Apache-2.0
2026-07-30 09:35:51 +00:00

47 lines
1.6 KiB
C++

//===----------------------------------------------------------------------===//
//
// Part of CUDA Experimental in CUDA Core Compute Libraries,
// under the Apache License v2.0 with LLVM Exceptions.
// See https://llvm.org/LICENSE.txt for license information.
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
// SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES.
//
//===----------------------------------------------------------------------===//
#pragma once
#include <vector>
#include <cccl/c/types.h>
namespace cccl::detail
{
/**
* @brief Extends a vector of compilation arguments with extra flags and include directories from a build config
*
* @param args The vector of arguments to extend
* @param config The build configuration containing extra flags and include directories (can be nullptr)
*/
inline void extend_args_with_build_config(std::vector<const char*>& args, const cccl_build_config* config)
{
// Work around an NVRTC 13.3 diagnostic pragma bug in CUDA Toolkit headers that leaves deprecated vector type warnings
// unsuppressed when including headers such as cuda_fp8.h, cuda_fp6.h, and cuda_fp4.h.
args.push_back("-D__NV_NO_VECTOR_DEPRECATION_DIAG");
if (config)
{
// Add extra compile flags
for (size_t i = 0; i < config->num_extra_compile_flags; ++i)
{
args.push_back(config->extra_compile_flags[i]);
}
// Add include directories
for (size_t i = 0; i < config->num_extra_include_dirs; ++i)
{
args.push_back("-I");
args.push_back(config->extra_include_dirs[i]);
}
}
}
} // namespace cccl::detail