Throughput benchmarks, how were these measured?

I am trying to benchmark the 6310-LX150 and cannot achieve even close to the reported figures as per specification. I’ve used both Windows and Linux, and got varied results. I understand these are not hard realtime OSs and performance will vary, but I would assume we could get closer than I’m seeing. For reference I’m using a laptop with 8GB of memory and a QUAD core processor running Windows 7. The application is 32 bit running on a 64 bit OS (possibly this could hurt). Also tested on the same machine with Linux (Fedora 17, 32 bit).

From the documentation:
API Call USB 3.0 (CPS) USB 2.0 (CPS) PCIe (CPS)
UpdateWireIns 5,000+ 1,000+ 4,000+
UpdateWireOuts 4,000+ 800+ 3,000+
ActivateTriggerIn 8,000+ 2,000+ 66,000+
UpdateTriggerOuts 4,000+ 800+ 3,000+

USB 3.0 USB 2.0 PCI Express
Transfer length Write Read Write Read Write Read
4.0 MB 313 313 37.9 37.9 100 200
8.0 MB 321 318 38.2 38.1 100 200

As per testing(PipeIn Example):
Windows
UpdateWireIns (1000 calls) Duration: 1.030 seconds – 970.87 calls/s
UpdateWireOuts (1000 calls) Duration: 1.029 seconds – 971.82 calls/s
ActivateTriggerIns (1000 calls) Duration: 1.014 seconds – 986.19 calls/s
UpdateTriggerOuts (1000 calls) Duration: 1.030 seconds – 970.87 calls/s

Read BS:0 SS:4194304 TS:67108864 Duration: 0.265 seconds – 241.51 MB/s
Read BS:0 SS:4194304 TS:33554432 Duration: 0.141 seconds – 226.95 MB/s

Linux
UpdateWireIns (1000 calls) Duration: 0.383 seconds – 2613.72 calls/s
UpdateWireOuts (1000 calls) Duration: 0.507 seconds – 1973.78 calls/s
ActivateTriggerIns (1000 calls) Duration: 0.254 seconds – 3934.14 calls/s
UpdateTriggerOuts (1000 calls) Duration: 0.508 seconds – 1966.97 calls/s

Read BS:0 SS:4194304 TS:67108864 Duration: 0.395 seconds – 161.97 MB/s
Read BS:0 SS:4194304 TS:33554432 Duration: 0.200 seconds – 160.35 MB/s

Can you help me understand how you tested to get the optimal numbers?

Thanks,
Rich

Hi Rich–

As you said, performance can vary significantly among hardware and software configurations. We have tested several and see a wide variation. This will narrow as USB 3.0 becomes more widespread and manufacturers and drivers become more stable and perform better.

Presently, the MacBook Pro with Retina has excellent performance. A Windows PC with Core i7 processor and Z77 chipset is also excellent. The Z77 chipset includes integrated USB 3.0 host controller and a VIA chipset hub. Here are the Mac numbers. The second test has data checks enabled and since we don’t do any optimization on that (such as multithreading), performance goes down.

[CODE]mbpr:PipeTest $ ./PipeTest pipetest.bit segmentsize 16777200 read 134217600 write 134217600
---- Opal Kelly ---- PipeTest Application v2.0 ----
FrontPanel DLL loaded. Built: Feb 25 2013 22:25:21
Found a device: XEM6310-LX45
Device firmware version: 1.8
Device serial number: 13100001TA
Device device ID: Opal Kelly XEM6310
FrontPanel support is enabled.
Duration: 0.360 seconds – 352.94 MB/s
Duration: 0.368 seconds – 345.54 MB/s

mbpr:PipeTest $ ./PipeTest pipetest.bit check segmentsize 16777200 read 134217600 write 134217600
---- Opal Kelly ---- PipeTest Application v2.0 ----
FrontPanel DLL loaded. Built: Feb 25 2013 22:25:21
Found a device: XEM6310-LX45
Device firmware version: 1.8
Device serial number: 13100001TA
Device device ID: Opal Kelly XEM6310
FrontPanel support is enabled.
Duration: 0.732 seconds – 173.42 MB/s
Duration: 0.655 seconds – 193.82 MB/s
[/CODE]

Here are numbers from a Win7/64/Z77 device:

Duration: 0.365 seconds -- 347.95 MB/s Duration: 0.383 seconds -- 331.59 MB/s

Thanks for the detail. Have you done any additional testing with chipsets that have non-native USB 3.0 onboard, such as the new Intel X79?

Regards,
Rich