02-15-2012 07:25 PM - edited 02-15-2012 07:26 PM
Hi,
I was wondering if a driver for the USRP would be released soon for 64 bit labview. The memory limitation in 32 bit labview means that I am only able to stream ~1.5 seconds of time stream data to memory at 20 MSPS.
Calculation:
I & Q, each double precision 8 bytes. Total: 16 bytes/sample.
20 MSPS*16 bytes = 320 MB/second.
My computer has 24 GB of ram, so in principle I could easily stream >30 seconds of data. However, 32 bit labview seems to want to allocate at most ~600 MB to an array and I can only stream < 2 seconds of data. For my application, I need to be able to stream ~10 to 30 seconds of data at a time and then post-process with an FFT (requiring additional memory).
Naively, releasing the same driver to support 64 bit Labview seems like it would just require a recompile but perhaps there is a lot more to it.
Cheers, Loren
02-16-2012 12:33 PM
Hello Loren -
For the scinario you've described, our first recommendation would be to stream the data to disk and then retrieve it for post-processing. We've done some benchmarking here and sustained >20 MS/s for > 1 hour. One of the tactics we did use was to convert the Complex Doubles to interpolated I16's. This reduces the data rate to about 2 bytes x 2 channels x 20MS/s = 80MB/s. While my internal hard drive could not sustain that data rate, I was able to maintin it with a RAID array which took my disk write performance from 100 MB/s peak to a sustainable 600MB/s (and also boosted my storage capacity.)
We are planning a driver release with direct access to I16, eliminating the need to deal with Complex Doubles prior to writing to disk.
Support of a 64bit driver is on the long term roadmap. Requests such as this certainly help us prioritze going forward.
I have attached the Record and Playback VI I used in my own benchmarking.