CuLab  GPU Toolkit for LabVIEW
Release Notes
V2.2.1.55
â€‹
Backward Compatibility
This is a minor update which does not break backward compatibility with v6.x.x versions of the toolkit.
Features
â€‹â€‹â€‹

Added “Boolean Operation” palette with the following functions.

CU_Boolean_2in.vi – compound function for different binary(twoinput) logical operations.

Supported Boolean Operations:

AND

OR

XOR

NAND

NO

XNOR

Select X

Select Y



CU_Boolean_Not.vi

CU_And_Array_Elements.vi

CU_Or_Array_Elements.vi


Added “Comparison Operation” palette with the following functions.

CU_Compare_1_Input.vi – compound function for different unary (singleinput) comparison operations.

Supported Comparison Operations:

Equal To 0?

Not Equal To 0?

Greater Than 0?

Greater Or Equal To 0?

Less than 0?

Less Or Equal To 0?


Supports all Tensor types, except complex types.


CU_Compare_2_Inputs.vi – compound function for different binary (twoinput) comparison operations.

Supported Comparison Operations:

Equal?

Not Equal?

Greater?

Greater Or Equal?

Less?

Less Or Equal?


Supports all Tensor types.

Accepts Comparison with a Constant.


CU_In_Range_and_Coerce.vi

Supports all Tensor types, except complex types.

Supports all tensor dimensionalities except T0D.


CU_Max_Min.vi

Supports all Tensor types, except complex types.

Supports tensor dimensionalities: T1D, T2D.



Added “Lookup” subpalette in “Array” palette with the following functions.

CU_Array_Lookup_by_Index.vi.  Returns a Tensor containing elements of the input Tensor specified by Index Tensor.

Supports all tensor dimensionalities except T0D.

Supports all Tensor types.


CU_Array_Lookup_by_Bool.vi.

Description: Returns a Tensor containing elements of the input Tensor, that have a value 1 (TRUE) in Boolean input Tensor.

Supports all tensor dimensionalities except T0D.

Supports all Tensor types, except complex types.



Added the following function in “Array” palette

CU_Replace_Array_Elemenets_by_Index_Batch.vi  replaces elements in input Tensor with elements from SubTensor at indices specified in IndexTensor

Supports tensor dimensionalities: T1D, T2D.

Accepts all input Tensor types



Added “Utilities” palette with the following function:

Get_Exec_Time.vi – Returns the relative current time in seconds, as well as time difference between execution of two instances of this VI.


Changed the “FFT” subpalette name to “Transforms” and added the following functions.

CU_Hilbert_Transform.vi  Computes the fast Hilbert transform of the input Tensor.

Accepted input Tensor types: SGL, DBL

Supported dimensionalities: T1D


CU_Analytic_Signal.vi  Computes the complex Analytic Signal of the realvalued input Tensor.

Accepted input Tensor types: SGL, DBL

Return Tensor types: CSG, CDB

Supported dimensionalities: T1D


â€‹
Optimizations
â€‹

Significantly improved the performance of CU_Tensor_Create_Push.vi and CU_Tensor_Push.vi.

Optimized execution of CU_to_SGL.vi function.

Other optimizations.
â€‹
â€‹
Extended Functionalities

Error Dialog Box returns the full path for call chain.

CU_Tensor_Create_Push.vi and CU_Tensor_Push.vi check if Input Tensor and CPU Data Array dimensions match before pushing the data to GPU.

The help file was updated to reflect the updated functionalities.
â€‹
â€‹
Bug Fixes

Fixed array max dimension (65535) issue in CU_Power_Spectrum.vi.

CU_Decimate_Single_Shot.vi connector pane changed to match with LabVIEW Decimate Single Shot vi.

Changed the name of "CU_Add Array Elements.vi" to "CU_Add_Array_Elements.vi".

Other minor fixes.
â€‹â€‹
â€‹
V2.1.1.50
â€‹
Backward Compatibility
â€‹
This is a minor update which does not break backward compatibility with v6.x.x versions of the toolkit.
â€‹
Features
â€‹

Added Signal Operation subpalette with the following functions.

CU_Decimate_Single_Shot.vi

Supports 1Ch1Ch, MCh1Ch, MChMCh modes.

Accepts (SGL, DBL, CSG, CDB) Tensor Types.


CU_Rational_Resampl.vi

Supports single channel mode.

Accepts (SGL, DBL, CSG, CDB) Tensor Types.


CU_Convolution.vi

Supports 1Ch1Ch, MCh1Ch, MChMCh modes.

Accepts (SGL, DBL, CSG, CDB) Tensor Types.


Cross_Correlation.vi

Supports single channel mode.

Accepts (SGL, DBL, CSG, CDB) Tensor Types.



Added a function to the Complex subpalette.

CU_Interleaved_to_Complex.vi.

Description: Converts interleaved sampled IQ data into complex representation. Designed to minimize data copy overhead during conversion.

Supports all tensor dimensionalities except T0D.

Accepted input datatypes (I8, U8, I16, U16, I32, U32, I64, U64, SGL, DBL)

Supported output datatypes (CSG, CDB)



Added following functions to the Device Management subpalette.

CU_Get_GPU_List.vi

Returns list of Nvidia GPUs available on the PC.


CU_Get_GPU_Properties.vi

Returns the properties for the selected GPU ID.


CU_Set_GPU.vi

Sets the selected GPU to be active.



Extended Functionalities

CU_Sine.vi, CU_Cosine.vi and CU_exponential.vi accept tensors with complex data representations (CSG, CDB) as input.


The help file was updated to reflect the updated functionalities.â€‹â€‹
â€‹
â€‹
â€‹Bug Fixes
â€‹

Fixed array max dimension issue in CU_Transpose_2D_Array.vi.

Fixed “Dest in” memory allocation issue in CU_Power_Spectrum.vi.

Fixed issue when CU_Square_Root.vi returned incorrect results when imaginary part is 0, and when run in inplace mode.

Other minor fixes.
â€‹
V2.0.1.39
General Description
This version of CuLab toolkit brings new functionalities and improves the performance of existing ones.
â€‹
Backward Compatibility
This is a minor update which does not break backward compatibility with v6.x.x versions of the toolkit.
Features

Added Trigonometric functions

â€‹Sine

Cosine

Tangent

Cotangent

Inverse Sine

Inverse Cosine

Inverse Tangent

Inverse Tangent 2 Input (atan2)

Inverse Cotangent

Sine & Cosine

Sinc


Added Exponential functions

Exponential

Exponential Arg 1

Logarithm Base 10

Logarithm Base 2

Logarithm Base X

Natural Logarithm

Natural Logarithm Arg +1

Power Of 10

Power Of 2

Power Of X

Yth Root of X


Added Hyperbolic functions

Hyperbolic Sine

Hyperbolic Cosine

Hyperbolic Tangent

Hyperbolic Cotangent

Inverse Hyperbolic Sine

Inverse Hyperbolic Cosine

Inverse Hyperbolic Tangent

Inverse Hyperbolic Cotangent


Added missed complex APIs

Complex to Polar

Polar to Complex

Polar to Re/Im

Re/Im to Polar


Added function for Quotient & Remainder

Added support for TensorConstant operations for binary numeric operations. This allows to choose a CPU based constant as a second operand

Added new function generation functions

Ramp Pattern

Sine Pattern

Power Spectrum


Added support for missing numeric types for numeric operations

Redesigned colors for tensor wires to make them distinguishable across numeric types and dimensionality

Added batched versions of FFT and IFFT

Added spectrum shifting functionality single channel and batched FFT
â€‹â€‹
Optimizations

Greatly improved the performance of RealtoComplex (R2C and D2Z) FFTs

Optimized execution times for Complex functions

Other optimizations
â€‹Bug Fixes

Fixed automatic instance selection issue in Array Max Min polymorphic function

Fixed memory leakage issue

Fixed an error in BLAS benchmarking example

Corrected typos

Other bug fixes
â€‹