LabVIEW中使用GPU进行高性能计算

项目中需要使用LabVIEW控制NI FPGA board产生控制信号等,使用GPU对采集的数据进行高性能计算,因此方案之一是用Visual Studio设计基于CUDA的GPU并行计算算法代码,然后生成DLL,使用LabVIEW设计NI FPGA board控制代码并调用DLL,采用LabVIEW完成所有软件设计。

LabVIEW官网资源:

  • 给出了使用CUDA的工具包:http://sine.ni.com/nips/cds/view/p/lang/zhs/nid/210829
  • 使用方法简介:http://www.ni.com/white-paper/14077/zhs/  其中包括了一个使用GPU进行FFT计算的例子,大概过程是打开GPU,初始化CUDA环境,传输数据到GPU,GPU计算,返回计算数据,释放GPU资源等。
  • LabVIEW使用GPU计算社区http://forums.ni.com/t5/GPU-Computing/gp-p/5053

但是对于使用LabVIEW进行graphic方式编程,我不是十分赞同,总感觉杂乱低效,而且我还不是很会调试LabVIEW code,所以目前倾向于用Visual Studio进行CUDA程序开发,控制NI FPGA board,这样可以更好的控制底层资源,调试也很便利。等初期版本稳定后,后期再将CUDA代码生成dll,交给使用LabVIEW编程的其他同事使用。

时间: 2024-10-15 10:14:43

LabVIEW中使用GPU进行高性能计算的相关文章

Labview中引用,属性节点,局部变量之间的区别

在Labview中我们经常会碰到这样几个概念,那就是控件的引用,属性节点以及局部变量,他们之间到底有哪些区别呢? 首先谈引用,在Labview中长称为引用句柄,在Windows编程中,引用句柄指的是指向指针的指针,换句话说,引用句柄保存的是其他一些数据类型的地址,例如窗口句柄.在Labview中,控件的引用句柄指的也是指向特定数据类型的指针,在Labview中,控件的引用句柄是长度为四个字节,引用句柄不但能够表示控件的类型,还与空间一一对应,这是通过句柄的编号来实现的,引用句柄自身未代表任何空间

【LabVIEW技巧】LabVIEW中的错误1

前言 前几日,小黑充电学习意外的看到了下面的这个东东. 编程许久竟然没有见过这样子的错误枚举,甚为好奇,问刘大后才知道是Error Ring,为此恶补一下LabVIEW中与错误处理相关的内容. 错误的生成 Error Ring Error Ring 的说明 Error Ring可以直接使用LabVIEW 定义好的一些错误或者自定义的错误,其帮助内容如下. 通过选板于Dialog& User Interface下面可以选择Error Ring 通过Quick Drop可以直接放置Error Rin

LabVIEW中数组的自动索引

我们在LabVIEW里面使用While或者是For循环结构的时候,就会发现每一个循环中在它们的循环结构的边界都可以自动完成一个数组元素的索引或累积.LabVIEW中循环结构的这种能力就叫做自动索引(Auto-indexing). 不过有一点需要注意:LabVIEW中For循环中自动索引功能是默认启用的,而While循环中自动索引功能是默认关闭的. 下图中就是一个使用For循环实现自动索引功能的例子: 在这里我们可以看到,在For循环中,每次循环就创建了数组的一个元素,当整个循环结束之后,这个由随

labview 中activex的初步使用方法

1.在前面板放置一个activex容器 2.插入activex控件 3.百度找到这个activex控件的属性和方法介绍 4.程序框图中右键activex控件,创建xxx类的方法或者xxx的属性:activex控件主要是依据方法和属性在labview中实现功能的 5.后续步骤编其他labview程序一样 下面以windows media player 为例说明 http://www.xuebuyuan.com/816450.html

如何在LabVIEW中使用Modbus通信

主要软件: 主要软件版本: 2010 主要软件修正版本: N/A 次要软件: LabVIEW Development Systems>>LabVIEW Professional Development System 问题: (1)    什么是Modbus通信协议? (2)    在LabVIEW中需要安装什么软件可以进行Modbus通信? (3)    客户经常询问的一个问题:在我的理解中Modbus的地址形式应该是40202,...这样的,但是ni里面的地址好像全是6位的? (4)   

matlab 中使用 GPU 加速运算

为了提高大规模数据处理的能力,matlab 的 GPU 并行计算,本质上是在 cuda 的基础上开发的 wrapper,也就是说 matlab 目前只支持 NVIDIA 的显卡. 1. GPU 硬件支持 首先想要在 matlab 中使用 GPU 加速运算,需要计算机配备有 NVIDIA 的显卡,可在 matlab 中运行: >> gpuDevice 1 如果本机有 GPU 支持,会列出 CUDADevice 的相关属性. 2. GPU 和 CPU 之间的数据传递 gpuArray:将定义在 C

Labview中数组元素加1的运行效率是创建数组的3倍

在使用Labview中的XY图进行波形数据展示时最耗时的操作就是对波形数据的刷新,尤其是在波形曲线较多且数据更新较快时,每秒可能会运算数千乃至数万次. 之前一直都是使用创建数组来对XY波形图内数据进行迭代 如下图红色框内部分: 基本可以满足程序需求,但是最近想优化代码就试了一下数组元素加1 代码及运行结果如下: 创建数组用时约1200ms 数组元素加1用时约400ms 数组元素加1的运行效率是创建数组的3倍 原文地址:https://www.cnblogs.com/lei-zi/p/114088

Labview中使用matlab script方法

一.Labview 与matlab简介 Labview是美国NI公司开发的编程语言,与C和VB这些文本语言不同的是,labview采用图形化编程,用图标代替文本创建应用程序.Labview采用的是数据流的编程方式,以节点输入输出数据的流向决定VI执行顺序. Matlab是mathworks公司发布的主要面对科学计算.可视化以及交互式程序设计的高科技计算环境,matlab具有高效的数值计算功能,具备完备的图形处理功能以及功能丰富的工具箱. ActiveX自动化是基于组件对象模型COM的技术,允许应

TensorFlow中使用GPU

TensorFlow默认会占用设备上所有的GPU以及每个GPU的所有显存:如果指定了某块GPU,也会默认一次性占用该GPU的所有显存.可以通过以下方式解决: 1 Python代码中设置环境变量,指定GPU 本文所有代码在tensorflow 1.12.0中测试通过. import os os.environ["CUDA_VISIBLE_DEVICES"] = "2" # 指定只是用第三块GPU 2 系统环境变量中指定GPU # 只使用第2块GPU,在demo_cod