想問問大家,平常在做運算量較大的程式的話,會使用labview搭配C++的方式來達成嗎?
也就是說,用labview做儀器的介面控制,用C++做高速的計算。
因為labview本身是一個相當容易學習的語言,許多labview的使用者可能沒有coding based language的習慣或基礎。所以估計會做labview與C++結合搭配的使用者不多。
即使如此,還是想問問大家,有沒有類似的經驗可以分享的呢?
想問問大家,平常在做運算量較大的程式的話,會使用labview搭配C++的方式來達成嗎?
我知道有公司是將運算包成DLL給LV使用
恩恩… 而且這樣運算的速度應該會快很多…
同樣的運算 (如過window, 轉FFT) 根據經驗, 依照速度排序:
1. FPGA: AI進FPGA直接轉完 (R系列DAQ), 透過DMA FIFO 送回host 顯示頻譜, 加速效果類似掛了硬體DSP, 抓完就算完, 擷取到顯示結果只有FIFO size latency, 缺點是FPGA gate count有限, LabVIEW FPGA裡的FFT VI最大處裡長度好像只到8192點, 要處裡更長就要自己開工, 並與慢到爆的compiler天天過招了.
2. C++ : AI透過DMA FIFO 送回擷取資料, 由外部DLL算完回傳結果陣列, 這部分跟C++ programer 經驗有關, 有無平行處理差很大.
3. PC host vi: 直接拉LabVIEW內建的FFT與Window VI由PC執行, 耗費時間通常是上面的2~3倍, 資料量越大越明顯.
送進顯示卡跑CUDA想像中應該介於1與2之間吧, 不過考量到資料反覆傳輸的開銷, 應該也是資料長度越大差異才會出現吧.