CV-CUDA

CVCUDA活跃维护

GPU 加速的图像处理与计算机视觉库,专为云端大规模负载设计,用 CUDA 把预处理和视觉算子跑在 GPU 上,缓解 CPU 瓶颈。

CV-CUDA™ is an open-source, GPU accelerated library for cloud-scale image processing and computer vision.

v0.19.0发布于 2026-10-20 17:16 UTC2,733star267fork同步于 2026-11-10 11:43 UTC

怎么上手

README 里没有找到可直接复制的安装命令

README 里没有找到可直接复制的安装命令,请到 README 或官方文档查看安装方式。

硬件要求按 README 关键词推断
需要 CUDA
下载:源码 zip·GitHub Releases(安装包)本站不镜像安装包

项目说明

这个项目的说明还在生成中,先参考下面「最近发版」和 README。

最近发版

5 个版本v0.19.0
  1. v0.19.0CV-CUDA Release v0.19.0最新正式版2026-10-20 · 2026-10-20 17:16 UTC

    v0.19.0

    Release Highlights

    CV-CUDA v0.19.0-beta includes the following changes.

    New Features and Enhancements

    • Added cvcuda.tv, a torchvision-compatible functional API for geometry, color, photometric and tensor transforms, without runtime dependencies on PyTorch or torchvision. Functions accept torch.Tensor and cvcuda.Tensor inputs, including erase's fill value and elastic's displacement. As in torchvision, displacement is relative to the identity sampling grid. cvcuda.tv.Compose (which requires PyTorch and TorchVision) runs TorchVision v2 transform pipelines, including random and AutoAugment-family transforms, as one CV-CUDA chain with a single import and export; see the supported-transform table.

    • Added TvResize with nearest-exact, nearest-floor, linear and cubic sampling, optional antialiasing, and torchvision-style Python size/max-size handling. Supports U8/U16/S16/F16/F32 HWC/NHWC and CHW/NCHW tensors, and uniform single-plane C1/3/4 variable-shape batches. Input and output scalar types must match; integer results round ties-to-even and saturate. The C/C++ API requires caller-owned workspace.

    • Added Split and Merge for tensors and variable-shape image batches.

    • Added free-threaded CPython 3.14 support, including concurrent operator submission, shared-buffer dependency tracking and safe batch mutation. See Free-threaded Python for build instructions and concurrency semantics.

    • Expanded data-type support:

      • CopyMakeBorder: S8/S32/S64/F64 on tensor, var-shape and planar paths.
      • CustomCrop: all uniformly packed 8-, 16-, 32- and 64-bit signed, unsigned and floating-point channel types.
      • Invert: S16/S32/S64/F64; Solarize: F64; AutoContrast: S16; BrightnessContrast: S64/F64.
      • Normalize: F64 on tensor, var-shape, scalar and planar paths, using double-precision arithmetic for images. Parameters remain F32.
      • Posterize: F16/F32/F64 images, quantizing normalized [0, 1] values into 2 ** bits levels with bits in [0, 8].
    • Extended HistogramEq with F16/F32/F64 images and a Pillow-compatible lookup-table method. Floating-point images are binned to 8 bits, equalized and scaled back. Select the method with NVCVHistogramEqMethod or Python's method= keyword: NVCV_HISTOGRAM_EQ_PILLOW matches Pillow's table bit-exactly; the default NVCV_HISTOGRAM_EQ_OPENCV and existing entry points are unchanged.

    • Added CvtColor grayscale codes RGB2GRAY_TV and BGR2GRAY_TV, bit-exact with torchvision.transforms.v2.functional.rgb_to_grayscale. They use BT.601 weights 0.2989 / 0.587 / 0.114 (as in MATLAB rgb2gray and TensorFlow), evaluated in float32 and truncated for integer outputs. Unlike RGB2GRAY (0.299, rounded to nearest), the weights sum to 0.9999, so white maps to 254 for U8. RGBA2GRAY_TV and BGRA2GRAY_TV ignore alpha.

    • Added AdvCvtColor support for the existing full-range BT.601, BT.709 and BT.2020 NVCV_COLOR_SPEC_*_ER specifications, also exposed through Python's cvcuda.ColorSpec. Each uses the same full-range U8 arithmetic as its base variant (issue #289).

    • Expanded interpolation and border options:

      • Resize accepts NVCV_INTERP_NEAREST_FLOOR (Python cvcuda.Interp.NEAREST_FLOOR) for PyTorch/torchvision nearest alignment. The existing NVCV_INTERP_NEAREST center-based convention is unchanged.
      • WarpAffine, WarpPerspective and Remap tensor paths accept NVCV_BORDER_CONSTANT_COVERAGE. It blends the border value according to the interpolation footprint's out-of-bounds coverage, at full precision before rounding. Var-shape paths do n
  2. v0.18.0CV-CUDA Release v0.18.02026-09-16 · 2026-09-16 17:17 UTC
    查看更新说明

    v0.18.0

    Release Highlights

    CV-CUDA v0.18.0-beta includes the following changes:

    New Features and Enhancements

    • Added FP16 (F16) image support to the following operators, on the tensor, var-shape, and planar paths alike: AdjustContrast, AdjustHue, AdjustSaturation, AdjustSharpness, AutoContrast, AverageBlur, BilateralFilter, BrightnessContrast, ChannelReorder, ColorTwist, Conv2D, ConvertTo, CopyMakeBorder, CropFlipNormalizeReformat, CvtColor, Erase, Flip, GammaContrast, Gaussian, GaussianNoise, HQResize, Invert, JointBilateralFilter, Laplacian, MedianBlur, Morphology, Normalize, PadAndStack, RandomResizedCrop, Remap, Resize, ResizeCropConvertReformat, Rotate, Solarize, Threshold, WarpAffine, and WarpPerspective (issue #260).

      Interpolating operators use native half storage with float arithmetic. Exceptions: Conv2D kernels and the ColorTwist matrix stay 32-bit float, Remap F16 is single-channel (matching F32), Threshold OTSU/TRIANGLE and subsampled YUV420/422 conversions remain 8-bit only, and ResizeCropConvertReformat gains F16 output only.

    • Added the complete CIE L*a*b* conversion family to CvtColor for U8, F16, and F32 tensors and var-shape batches: sRGB and linear RGB/BGR in both directions, with interleaved and planar layouts and dedicated Lab formats (issue #282).

    Performance Improvements

    • Vectorized Morphology planar C3 dilate and Reformat planar RGB8 interleave.

    • Added specialized fast paths for GaussianNoise planar C3 var-shape, BilateralFilter planar C3 radius-2, CLAHE 8x8 tensor tiles, and Threshold planar U8 binary var-shape.

    • WarpAffine cubic with an integer inverse transform now uses the nearest specialization, where it is bit-exact.

    • MedianBlur skips the sort when the center pixel already holds the median rank; Inpaint narrows its source scan window; NonMaximumSuppression scans by warp; BndBox flattens dense image copies.

    Bug Fixes

    • CUDA kernel launch errors are now reported as exceptions across the modern and legacy operators. AdvCvtColor and CLAHE previously aborted the process instead of propagating the failure, and workspace allocation failures now surface as public exceptions.

    • Made cvcuda.Stream current-stream contexts host-thread-local. A host thread without an active context now resolves cvcuda.Stream.current to cvcuda.Stream.default. Invalid cross-thread or out-of-order __exit__ calls raise RuntimeError instead of corrupting another context (issue #274).

    • NonMaximumSuppression no longer keeps duplicate boxes that tie on both score and area; a deterministic index tiebreak now retains exactly one (issue #292).

    • Tightened input validation, replacing undefined behavior with errors: PadAndStack top/left tensor exports, FindHomography reusable operator capsules and dimensions, MinMaxLoc tensor layouts, MinAreaRect point-count rank, and Stack output metadata.

    • Fixed Resize per-column source coordinates, wide AREA resize types, partial OSD tiles, and Flip planar float3 on CUDA 12 SM80.

    • Python container and cache fixes: Tensor/Image batches keep their state after a failed insert, and the cache accounting no longer drifts on eviction, thread-local clears, or interpreter shutdown.

    Compatibility Changes

    • cvcuda.Stream contexts no longer span host threads. Code that entered a stream context on one thread and submitted work from others—a worker pool inside a with cvcuda.Stream(): block, for example—previously picked up that stream and now submits on the legacy default s
  3. v0.17.0CV-CUDA Release v0.17.02026-08-11 · 2026-08-11 22:53 UTC
    查看更新说明

    v0.17.0

    Release Highlights

    CV-CUDA v0.17.0-beta includes the following changes:

    New Features and Enhancements

    • Added the JpegCompressionDistortion operator, a self-contained GPU simulation of JPEG compression artifacts (full-range JFIF YCbCr, 4:2:0 chroma subsampling, per-8x8-block DCT quantization; ported from NVIDIA DALI, no codec dependency) with per-image or per-batch quality.

    • Added the AdjustContrast, AdjustHue, AdjustSaturation, AdjustSharpness, AutoContrast, CLAHE (Contrast Limited Adaptive Histogram Equalization), Invert, Posterize, and Solarize operators.

    • Added native planar (NCHW/CHW) support across the public image operator catalog, subject to each operator's documented input type, dimensionality, channel, format, and auxiliary-input limitations.

    • Added tensor input support to GammaContrast and by-value parameter paths to BrightnessContrast, GammaContrast, GaussianNoise, and Normalize, avoiding temporary device parameter tensors and host-to-device copies.

    • Added NVCVRoundMode (cvcuda.Round in Python), with nearest and truncate modes for integral output conversion in ConvertTo and the scalar GammaContrast path.

    • Extended the Python API with Stream.wait_stream(), NumPy float16 interoperability, single-dimension and empty TensorLayout values, and hashable TensorLayout and Type objects.

    • Added always-on NVTX ranges to public C and Python operator submissions for improved Nsight profiling visibility.

    • Expanded Python operator samples and documentation, and revamped the Docker build and development images. Source builds no longer use Git submodules.

    Performance Improvements

    • Improved performance across more than 50 operators, with 1.8x average speedups on H100.

    • Reduced Python wrapper overhead in ResourceGuard with batched sync/hold and cached pybind11 reverse casts.

    • Reduced binary and package sizes with size-optimized CUDA fatbinary compression when built with CUDA 12.8 or later.

    • Reduced x86_64 package sizes by removing blanket SM86 and SM89 code generation while retaining performance-sensitive operator cubins and conservative coverage for inconclusive or post-freeze cases.

    Bug Fixes

    • Fixed correctness and robustness issues across operators: Composite, Erase, FindHomography, GammaContrast, GaussianNoise, Histogram, HistogramEq, HQResize, Inpaint, PillowResize, RandomResizedCrop, ResizeCropConvertReformat, Rotate, and WarpAffine/WarpPerspective.

    • Fixed cubic interpolation boundary conditions in Resize and the shared cubic paths used by RandomResizedCrop, and added 1-channel (grayscale/Y8) support to ResizeCropConvertReformat (issue #285).

    • Fixed multi-GPU workspace and cache handling, CUDA Array Interface and DLPack stream synchronization, device restoration during Stream destruction, and memory growth in the as_image cache (issue #258).

    • Strengthened input validation and memory safety across operators, returning clear errors instead of aborting or launching invalid CUDA work. Also fixed ResourceGuard error paths that could terminate the Python process.

    • Fixed text rendering backend issues and added dedicated unit coverage for the STB text backend.

    • Corrected multi-stream Python test synchronization (community contribution PR #288 by Daniel Ching).

    Compatibility Changes

    • Dropped official support for Python 3.9.

    • C++ operator wrapper classes are now move-only; copying an operator wrapper no longer compiles.

    • The C cvcudaConvertToSubmit function now requires an explicit NVCVRoundMode argument. C++ and Python callers retain nearest rounding as the default; existing C binaries using this entry point must be rebuilt.

    • Public NVCV allocator callbacks and resourc

  4. v0.16.0CV-CUDA Release v0.16.02025-11-15 · 2025-11-15 01:16 UTC
    查看更新说明

    v0.16.0

    Release Highlights

    CV-CUDA v0.16.0 includes the following changes:​

    • New Features and Enhancements:​
      • Added support for Python 3.14​, CUDA 13, GCC-12 to GCC-14 and Blackwell GPU architecture, including Jetson Thor
      • Improved documentation, samples and framework interoperability examples
      • Added new multi-architecture (x86_64, aarch64) Docker images for building (ManyLinux-based) and developing CV-CUDA (Ubuntu-based)
      • Improved Python wheels generation and packaging​
    • Bug Fixes:
      • Fixed Coverity security findings​
    • Deprecated Features:
      • Dropped official support for CUDA 11
      • Dropped official support for CUDA Compute Capability SM7 (Volta architecture)
      • Dropped official support for Ubuntu 20.04
      • Dropped official support for Python 3.8

    Compatibility and Known Limitations

    For the full list, see main README on CV-CUDA GitHub.

    License

    CV-CUDA is licensed under the Apache 2.0 license.

    Resources

    1. CV-CUDA GitHub
    2. Optimizing Microsoft Bing Visual Search with NVIDIA Accelerated Libraries
    3. Accelerating AI Pipelines: Boosting Visual Search Efficiency
    4. Optimize Short-Form Video Processing Toward the Speed of Light
    5. CV-CUDA Increasing Throughput and Reducing Costs for AI-Based Computer Vision with CV-CUDA
    6. NVIDIA Announces Microsoft, Tencent, Baidu Adopting CV-CUDA for Computer Vision AI
    7. CV-CUDA helps Tencent Cloud audio and video PaaS platform achieve full-process GPU acceleration for video enhancement AI

    Acknowledgements

    CV-CUDA originated as a collaborative effort between NVIDIA and the ByteDance Machine Learning team.

  5. v0.15.0CV-CUDA Release v0.15.02025-05-19 · 2025-05-19 22:37 UTC
    查看更新说明

    v0.15.0-beta

    Full Changelog: https://github.com/CVCUDA/CV-CUDA/compare/v0.14.0-beta...v0.15.0-beta

    Release Highlights

    CV-CUDA v0.15.0 includes the following changes:​

    • New Features:​
      • Added support for Python 3.12 and 3.13​
      • Added artifacts for CUDA 11 ARM/SBSA
      • Added Hello World sample
      • Added tests for multiple operators
    • Bug Fixes:
      • Fixed issue with Python wheels packaging the CUDA runtime and creating potential mismatch with driver version on host system
      • Fixed codeQL SAST findings

    Compatibility and Known Limitations

    For the full list, see main README on CV-CUDA GitHub.

    License

    CV-CUDA is licensed under the Apache 2.0 license.

    Resources

    1. CV-CUDA GitHub
    2. Optimizing Microsoft Bing Visual Search with NVIDIA Accelerated Libraries
    3. Accelerating AI Pipelines: Boosting Visual Search Efficiency
    4. Optimize Short-Form Video Processing Toward the Speed of Light
    5. CV-CUDA Increasing Throughput and Reducing Costs for AI-Based Computer Vision with CV-CUDA
    6. NVIDIA Announces Microsoft, Tencent, Baidu Adopting CV-CUDA for Computer Vision AI
    7. CV-CUDA helps Tencent Cloud audio and video PaaS platform achieve full-process GPU acceleration for video enhancement AI

    Acknowledgements

    CV-CUDA is developed jointly by NVIDIA and the ByteDance Machine Learning team.

用户点评

登录用户的真实使用记录,可按版本和硬件筛选
共 0 条

    还没有人点评。第一个说出真实体验的人最有价值。

    README 原文

    未翻译

    CV-CUDA

    Version PyPI License

    Platform

    CUDA GCC Python CMake

    CV-CUDA is an open-source library of GPU-accelerated computer vision algorithms designed for speed and scalability. It delivers high-throughput, low-latency image/video processing for AI pipelines across NVIDIA cloud, desktop, and edge platforms. CV-CUDA is built for performance and works seamlessly with C/C++ and Python Image and AI frameworks.

    For more information on available operators, API documentation, and getting started guides, refer to our online documentation.

    CV-CUDA in Action

    Fully GPU-accelerated image resizing with nvImageCodec and CV-CUDA.

    import cvcuda
    from nvidia import nvimgcodec
    
    # Decode image directly to GPU
    decoder = nvimgcodec.Decoder()
    image = decoder.read("input.jpg")
    
    # Convert to CV-CUDA tensor and process
    cvcuda_tensor = cvcuda.as_tensor(image, "HWC")
    resized = cvcuda.resize(cvcuda_tensor, (224, 224, 3), cvcuda.Interp.LINEAR)
    

    Installation

    CV-CUDA can be installed from pre-built packages (Python wheels, Debian packages, or tar archives) or built from source. Python bindings support Python 3.10 through 3.14, including free-threaded Python 3.14 (3.14t), on Linux x86_64 and aarch64 SBSA. Jetson support varies by platform; see the compatibility table below. See cvcuda-cu12 and cvcuda-cu13 on PyPI for CUDA 12 and CUDA 13 wheels, respectively.

    CUDA VersionInstallation Command
    CUDA 12pip install cvcuda-cu12
    CUDA 13pip install cvcuda-cu13

    See Installation for complete installation instructions including building from source, installing Debian packages, and tar archives.

    Building from source: CV-CUDA no longer uses git submodules — running git submodule update --init is not required and will find nothing. Build dependencies are pre-installed in the Docker devel images (see docker/README.md) and resolved via CMake's find_package, with a documented FetchContent fallback for DLPack when it is not already installed. To build outside Docker, see the build dependencies in the Installation guide.

    Compatibility

    CV-CUDA BuildPlatformCUDA VersionCUDA Compute CapabilityHardware ArchitecturesNvidia DriverPython VersionsSupported Compilers (build from source and API compatiblity)API compatibility with prebuilt binariesOS/Linux distributions tested with prebuilt packages
    x86_64_cu12x86_64≥12.2≥SM7.5Turing, Ampere, Ada Lovelace, Hopper, Blackwell≥r525**3.10 - 3.14, 3.14tgcc≥10*gcc≥10 clang≥11ManyLinux2014-compliant, Ubuntu≥22.04WSL2/Ubuntu≥22.04
    x86_64_cu13x86_64≥13.0≥SM7.5Turing, Ampere, Ada Lovelace, Hopper, Blackwell≥r580**3.10 - 3.14, 3.14tgcc≥10*gcc≥10 clang≥11ManyLinux2014-compliant, Ubuntu≥22.04WSL2/Ubuntu≥22.04
    aarch64_cu12aarch64 SBSA***≥12.2≥SM7.5ARM SBSA (incl. Grace): Turing, Ampere, Ada Lovelace, Hopper, Blackwell≥r525**3.10 - 3.14, 3.14tgcc≥10*gcc≥10 clang≥11ManyLinux2014-compliant, Ubuntu≥22.04
    aarch64_cu12aarch64 Jetson***12.2≥SM7.5Jetson AGX Orin, IGX Orin + Ampere RTX6000, IGX Orin + ADA RTX6000JetPack 6.0 DP, r535 (IGX OS v0.6)3.10gcc≥10*gcc≥10 clang≥11Jetson Linux 36.2 IGX OS v0.6
    aarch64_cu13aarch64 SBSA and Jetson Thor***≥13.0≥SM7.5ARM SBSA (incl. Grace): Turing, Ampere, Ada Lovelace, Hopper, Blackwell, Jetson Thor≥r580**3.10 - 3.14, 3.14tgcc≥10*gcc≥10 clang≥11ManyLinux2014-compliant, Ubuntu≥22.04

    * test module with partial coverage, need gcc≥11 for full coverage (see Known Limitations) ** CUDA 12 x86_64 and aarch64 SBSA packages require driver ≥r525. Samples require driver ≥r535, Jetson Orin packages follow JetPack 6/r535, and CUDA 13 requires ≥r580. *** starting with v0.14, aarch64 packages (deb, tar.xz or wheels) distributed on Github (release "assets") or Pypi are SBSA-compatible unless noted otherwise. Jetson 6 builds (deb, tar.xz, whl) can be found in explicitly named "Jetson" archives in Github release assets. Packages marked 'aarch64_cu13' are built with the unified CUDA toolkit, compatible with both server-class and embedded platforms (Jetson Thor).

    Known limitations

    • CV-CUDA does not currently support native Windows, only WSL2
    • Starting with v0.16, CV-CUDA is dropping official support for CUDA 11, SM7 (Volta), Ubuntu 20.04, Python 3.8.
    • When building from source for Jetson Orin, use -DCVCUDA_AARCH64_JETSON=ON to target only Orin-relevant GPU architectures and reduce build time.
    • Starting with v0.14, aarch64 packages (deb, tar.xz or wheels) distributed on Github (release "assets") and Pypi are the SBSA-compatible ones. Jetson builds (deb, tar.xz, whl) can be found in explicitly named "Jetson" archives in Github release assets.
    • The C++ test module builds with gcc≥10 with partial coverage. Full coverage requires gcc≥11 with full C++20 support (NTTP).
    • CV-CUDA Samples are only officially supported with CUDA 12.
    • Only one CUDA version (CUDA 12.x or CUDA 13.x) of CV-CUDA packages (Debian packages, tarballs, Python Wheels) can be installed at a time. Please uninstall all packages from a given CUDA version before installing packages from a different version.
    • The OSD operator's text rendering functionality has known issues on Jetson/aarch64 platforms, to be fixed in an upcoming release.

    Contributing

    CV-CUDA is an open source project. As part of the Open Source Community, we are committed to the cycle of learning, improving, and updating that makes this community thrive. However, CV-CUDA is not yet ready for external contributions.

    To report a bug, request a new feature, or ask a general question, please file a GitHub issue.

    To understand our commitment to the Open Source Community, and providing an environment that both supports and respects the efforts of all contributors, please read our Code of Conduct.

    License

    CV-CUDA operates under the Apache-2.0 license.

    Security

    CV-CUDA, as a NVIDIA program, is committed to secure development practices. Please read our Security page to learn more.

    Acknowledgements

    CV-CUDA originated as a collaboration between NVIDIA and ByteDance.

    References: