Please make sure VIPM is running with Administrator privliges!!!
G2CPU GPU and CPU high performance computing toolkit Community Edition
G2CPU is a general high performance computing library for LabVIEW based on ArrayFire.
Through the same code you can dynamically choose where the computational task is executed with absolutely no hassle. Code can be run on standard CPU's, Nvidia CUDA devices and OpenCL compatible devices.
Community license
The community edition is a free edition of G2CPU which is free to use by anyone for non-commercial actions.
Feel free to develop, learn and play. A perfect pairing with LabVIEW community edition.
Email toolsnetwork@ni.com to get your free license.
Please provide the following details when doing so:
- First name
- Last name
- E-mail address
- Organization
- Computer ID (You can find this by going to the "NI License Manager" and clicking "computer information" in the top.)
Note from NI Tools Network
The Community license will not show up on your NI account, it will be a computer-based license so if you want to transfer the license to another system you would need to reapply for a new community license.
You have access to general arithmetic, array manipulation, signal processing, vector algorithms, machine vision and many more with even more to come.
Supported Technologies
CPU
When running code on you CPU the computational task is divided over multiple cores. Fully utilizing the CPU without the need for manual thread control.
CUDA GPU's
Maximize your computational power on Nvidia GPU's by using Nvidia's CUDA technology.
OpenCL GPU's
Throug OpenCL you can run code on most commercial GPU's from all the big vendors like Intel, AMD and Nvidia. You can even run your code on the integrated graphics card on your CPU. (if available)
Intel OneAPI
The Intel OneAPI is provides its own unified acces to hardware which ranges from CPU's, GPU's to even accelerators and FPGA's.
1.4.2.2
(Sep 10, 2024)
New features
- By keys functions now allows S32 1D keys
- When providng a scalar indix to "G2CPU Lookup" one dimension count will be subtracted from the output.
- Mod dims no longer requires only U64 datatype clusters
- You can now pre allocate buffers when downloading arrays for daster GPU to CPU memory transfers.
Bug Fixes:
- FFT IDE behaviour when providing complex numbers is now correct.
- G2CPU Coerce now sets its output datatype based on the Array in datatype
- Mod Dims now allows output arrays to be lower dimension counts.
- FIR release connectors where switched, they are now correct.
- Concatenate release connectors where switched, they are now correct.
- Fix of select vi controls being reversed
- G2CPU select no longer crashes due to swapped inputs.
1.4.1.5 (Jul 02, 2024)
New features
- New DMA method for increased LabVIEW to GPU speed.
- Decoupled libraries for faster loading times in development environment
Bug Fixes:
- FFT's required inputs set
- Update of of FIR and IR datatype passthrough so it reflects the input array
- Improved stability in LabVIEW analog indexing functions
- Basic maths of a scalar of different type to an array no longer causes an internal error
- Typecast is now visible in the function pallete
1.4.0.2 (May 08, 2024)
Bug Fixes:
- FFT's required inputs set
- FIR And IIR now pass through dimension sizes. Now you can filter on compound datasets. (multiple 1D arrays as a single 2D array)
1.3.0.3 (Mar 20, 2024)
New features
- Support for communicating with multiple devices at the same time
- G2CPU Build Array Many and G2CPU Concatenate Array Many now allows a near infinite amount of arrays to be merged at the same time.
-Addition of Random Engine object to allow for better random number control
- Examples revamped
- G2CPU Modify dims now allows for arrays being but out that are different to the input.
- Better error message if you forget to run the installer as administrator
- Optional - Required connectors are now set
- G2CPU Tile now allows for arrays of differing output dim count than the input
- G2CPU Cast now support G2CPU objects allongside LabVIEW elements for datatype definition.
- G2CPU Create array no longer blocks the ArrayFire queue for a device when providing an array as source for its size.
- G2CPU Pad Array now allows for arrays of differing output dim count than the input
- G2CPU Range array no longer blocks the ArrayFire queue for a device when providing an array as source for its size.
Bugfixes
- G2CPU Quotient acted as remainder
- G2CPU Remainder behaviour corrected
- G2CPU Replace no longer allows for non matching arrays
- Benchmark example had backend and device selection switched around causing some issues with multiple devices
- G2CPU Sign was not putting out booleans
- Image Moment functions where not putting out 1D F32
- G2CPU Power of 2 was unstable and is removed. Please use G2CPU Power of X with the desired scalar.
- Probes now correctly know to which backend and device an array is assigned.
- Some functions still had automatic error handling enabled.
- G2CPU Sync Device is now reentrant
- G2CPU stdev functions no longer complain about invalid inputs due to provided dimensions.
- All probes now show tables by default
- G2CPU Range Array accidentally needed a datatype, even when not applicable.
- Added the missing File IO Palette
1.3.0.2 (Mar 18, 2024)
New features
- Support for communicating with multiple devices at the same time
- G2CPU Build Array Many and G2CPU Concatenate Array Many now allows a near infinite amount of arrays to be merged at the same time.
-Addition of Random Engine object to allow for better random number control
- Examples revamped
- G2CPU Modify dims now allows for arrays being but out that are different to the input.
- Better error message if you forget to run the installer as administrator
- Optional - Required connectors are now set
- G2CPU Tile now allows for arrays of differing output dim count than the input
- G2CPU Cast now support G2CPU objects allongside LabVIEW elements for datatype definition.
- G2CPU Create array no longer blocks the ArrayFire queue for a device when providing an array as source for its size.
- G2CPU Pad Array now allows for arrays of differing output dim count than the input
- G2CPU Range array no longer blocks the ArrayFire queue for a device when providing an array as source for its size.
Bugfixes
- G2CPU Quotient acted as remainder
- G2CPU Remainder behaviour corrected
- G2CPU Replace no longer allows for non matching arrays
- Benchmark example had backend and device selection switched around causing some issues with multiple devices
- G2CPU Sign was not putting out booleans
- Image Moment functions where not putting out 1D F32
- G2CPU Power of 2 was unstable and is removed. Please use G2CPU Power of X with the desired scalar.
- Probes now correctly know to which backend and device an array is assigned.
- Some functions still had automatic error handling enabled.
- G2CPU Sync Device is now reentrant
- G2CPU stdev functions no longer complain about invalid inputs due to provided dimensions.
- All probes now show tables by default
- G2CPU Range Array accidentally needed a datatype, even when not applicable.
1.2.0.4 (Dec 06, 2023)
Machine Vision Phase 1
New Features:
- Addition of interfaces to Arrayfire image processing functions
- Addition of image processing examples
- Addition of image viewers to F32, U16 and U8 probes.
- Addition of image viewing utilities
- Addition of interfaces to Arrayfire machine vision functions
- Addition of machine vision examples
- Addition of machine vision descriptor class and phase 1 probe
Bugfixes:
- Build and Concatenate array are now robust and should not crash LabVIEW anymore
- Build and Concatenate array now have auto release behaviour similar to all other functions.
- (I)FFT's now have their default normalisation set to 1
1.1.0.10 (Oct 31, 2023)
New Features:
- Directly feed LabVIEW arrays in functions instead of uploading them first. (Except for inline functions)
- Allow for different dimensions on the inputs of base math functions.
- Addition of "G2CPU Lookup.vim" function
- Addition of "G2CPU Search Array.vim", "G2CPU Events to Keys.vim", "G2CPU Search for Events.vim" compound functions
- Automatic installation of dependent Visual C++ Redistributables.
- "G2CPU Cast.vim" function now has autorelease.
- Helper functions now have autorelease.
- File functions now have autorelease.
- Indexing LabVIEW Analogy functions now have autorelease
- Addition of troubleshooting to help files.
Bugfixes:
- "G2CPU Coerce.vim" would fail whith released arrays
- 2D and up arrays with only 1 element would throw an an error
- Released arrays would crash LabVIEW when you would try to do an operation on them
- Fix of memory leak in "G2CPU Insert Array.vim"
- By key functions now output reduced keys in the correct dimension count and size
- By key functions where outputting arrays under the assumption they where reduced. This is now fixed.
- Some signal processing functions had their autorelease booleans switched around.
1.0.4.18 (Oct 27, 2023)
no release notes for this version