Simulation / Modeling / Design

Popular Open Source Thrust and CUB Libraries Updated

AI-Generated Summary

  • Thrust 1.11.0 introduces a new sort algorithm that delivers up to 2x performance improvement for Thrust 1.11.0 Release Notes when used with certain key types and hardware.
  • The thrust::shuffle algorithm has been updated to enhance output randomness.
  • CUB 1.11.0 adds a DeviceRadixSort backend that improves performance by up to 2x on supported keys and hardware.
  • Both libraries now offer improved CMake package and build system support including add_subdirectory, installation rules, and status messages.

Next Steps

Powered by NVIDIA Nemotron. AI-generated content may summarize information incompletely. Verify important information. Learn more

Thrust 1.11.0 is a major release providing bug fixes and performance enhancements. It includes a new sort algorithm that provides up to 2x more performance from thrust::sort when used with certain key types and hardware. The new thrust::shuffle algorithm has been tweaked to improve the randomness of the output. 

CUB 1.11.0 is a major release providing bug fixes and performance enhancements. It includes a new DeviceRadixSort backend that improves performance by up to 2x on supported keys and hardware. 

The CMake package and build system for both libraries continue to improve with add_subdirectory support, installation rules, status messages, and other features that make these libraries easier to use from CMake projects. 

About Thrust and CUB

Thrust provides STL-like templated interfaces to several algorithms and data structures designed for high performance heterogeneous parallel computing. Thrust abstractions are agnostic of any particular parallel framework.  CUB is a library of collective primitives and utilities. CUB is specific to CUDA C++ and its interfaces explicitly accommodate CUDA-specific features.

Thrust and CUB are complementary and are often used together. 

Learn more:

Discuss (0)

Tags