Sign Up

CuLab - GPU Accelerated by Ngene - Toolkit for LabVIEW Download

CuLab - GPU Accelerated Toolkit

D Discussion Watch * 8 ↓333
 screenshot
Version4.0.1.73
ReleasedJan 09, 2025
Publisher Ngene
License Ngene Custom
LabVIEW VersionLabVIEW x64>=20.0
Operating System Windows x64
Project links Homepage   Documentation   Repository   Discussion

Description

CuLab is an intuitive toolkit specifically designed for LabVIEW users, simplifying the acceleration of complex computations on Nvidia GPUs.
CuLab offers an extensive API, specifically tailored to accelerate essential functions, including mathematical operations (covering simple math, trigonometric, and exponential functions), Linear Algebra, signal generation and processing (FFT/IFF, correlation, convolution, resampling), and seamless array manipulation directly on GPUs.
One of CuLab's key features is its support for tensors, representing data structures on GPU, spanning all numeric data types and dimensionalities from 0D (scalars) to 4D arrays. This flexibility ensures compatibility with a wide range of data processing needs.
Designed with simplicity in mind, CuLab serves as a user-friendly bridge, enabling the acceleration of any data processing code developed in LabVIEW on Nvidia GPUs.

Release Notes

4.0.1.73 (Jan 09, 2025)

V4.0.1
General Description
This version of the toolkit brings lots of new functionalities and improvements.
It mainly keeps the backward compatibility with the previous version but does break for some API function

New Features
1. Now the toolkit supports adaptive tensor sizing. The output/destination tensor will automatically be resized depending on the input/s dimensions and configurations (e.g. continuous signal processing VIs).
2. Added new function in “Signal Operation” subpalette:
a. “CU_Decimate_Single_Shot_Adaptive.vi”. This vi is designed to perform decimation based on output size, in contrast to “CU_Decimate_Single_Shot.vi”, which performs decimation based on decimation factor, and adaptively choses output size.
- Supported input types: SGL, DBL.
- Batch mode supported: False.
- Supported operations: Avg, Min, Max, MinMax
- This VI does not have LabVIEW counterpart.
3. Added new function in “Filters” subpalette in the “Signal Processing” palette.
a. “CU_FIR_Filter.vi” – Performs continuous FIR filtering over sequence of input signal.
- Supported input types: SGL, DBL, CSG, CDB.
- Batch mode supported: True.
4. Updated “CU_Sine_Pattern.vi”:
a. Added support for complex types.
b. Added support for continuous signal generation between consecutive calls.
c. Added batch mode support.
5. Updated “CU_Rational_Resample.vi”:
a. Removed “averaging” input.
b. Added support for continuous processing.
c. Added support for custom FIR filter coefficients through separate input.
d. Removed “Dest_in” input, as it is changing its size between consecutive calls.
6. Updated “CU_Digital_Down_Conversion.vi””
a. Added support for continuous reference/carrier signal generation.
b. Added support for custom FIR filter coefficients through separate input.
c. Removed “Dest_in” input, as it is changing its size between consecutive calls.
7. Added new “API CU_Tensor_Pull_to_DVR.vi” in “Tensor” palette, which aims to improve GPU to CPU data copying efficiency.
8. Removed support for preallocated CPU array destination for “CU_Tensor_Pull.vi”. Destination allocation (or reallocation) is performed internally.
9. Updated “CU_Tensor_Push.vi”. Now it does not require to have preallocated tensor as a destination input.
10. Updated GPU info tool
a. Changed display font to monospace type for aligned visualization of the information.
b. Added info about installed driver version.
c. Added info about detected GPUs.

Cosmetic Changes
1. Moved “CU_Add_Broadcast.vi” and “CU_Multiply_Broadcast.vi” functions into “Broadcast” subpalette.
2. “CU_Sine_Pattern.vi” connector pane changed to match with LabVIEW “Sine Pattern” vi.
3. “CU_Max_Min.vi” connector pane changed to match with LabVIEW “Max & Min” vi.
4. “CU_Decimate_Single_Shot.vi” connector pane changed to match with LabVIEW “Decimate Single Shot” vi.

Bug Fix
1. Fixed the bug when “CU_Square_Root.vi” returns inf for “0+j0” complex input.
2. Fixed a bug dimension validation in the “CU_Add_Broadcast.vi” and “CU_Multiply_Broadcast.vi”
3. Fixed the bug in “CU_Convolution.vi”, which caused the CUDA runtime system to crash when run with 1D_SGL and 1D_DBL in frequency domain mode.
4. Other minor fixes.


Download Package

Versions
All Contributors

  Post an Idea   Post a Resource

Recent Posts

Can waveform generation be included as simple trig and linear operations like ramp and sine pattern
Many RF DSP maths require simple signals to perform operations. Making those signals takes horsepow…

by norm!, 2 years, 4 months ago, 1 , 2
suggestion
Can complex number library be fleshed out with polar transforms?
Complex to polar transforms are done a TON in RF DSP. I'd love to see the impact on some core algor…

by norm!, 2 years, 4 months ago, 1 , 1
suggestion