I have similar problem as described on page http://forums.ni.com/ni/board/message?board.id=250&message.id=23831
but have solution and some reflections.
first of all, about system
system use 2x PCI-6143 and take data from 16 channels with maximum rate (250 kS/s)
program was created about year ago (with LV 7.1.1, DAQmx 7.4) and on PC with PIV (3.2 GHz) processor and 1 Gb of RAM work properly (CPU usage less 30%).
Now I've recompile program with LV8.2 and update drivers to DAQmx 8.3. now program can't work properly because CPU usage 100%
I create test VI for research this problem.
First version (daq_test1) - simple code - configure daqtask and get data.
I found:
if sample rate less or equal 90 kS/s (on PCI-6143) CPU usage less 5%, but when rate more 95 kS/s CPU usage jump to 60% (for one or more channels on one or two devises).
Then I create simulated devise PCI-6143 in MAX and the same vi (daq_test1) require not more than 5-10% of CPU.
also I have examine devise 16E-4 and find the same problem: if samle rate more than "boundary" rate, CPU usage is too much (50-70%).
Then I add configure parameters (daq_test2) - add manualy DMA "on". There are no effects (CPU usage jump to 60% on "fast" rates)
Then I "play" with WaitMode (daq_test3). There are no effects (even if WaitMode=Sleep and SleepTime>1s CPU usage about 60%)
Finally I create vi (daq_test4), where "manually" check AvailableSamplesPerChannel and call DAQmx Read only when bufer has more samples, that I need.
So I'd wound solution, but think driver MUST check available samples carefully (also, why DAQmx 7.4 can fast scan, but DAQmx 8.3 can't do it
at least the same way as previous version).