wbsun / kgpu

Currently GPUstore. Technical paper: http://www.cs.utah.edu/~wbsun/gpustore.pdf
https://code.google.com/p/kgpu/
Other
216 stars 34 forks source link

Benchmark suite #1

Open codutti opened 12 years ago

codutti commented 12 years ago

I want to benchmark kgpu with a modest GT430 but I can't figure out when KGPU enters in action and when mu CPU does all the work. My testbed is a Ubuntu and my interest is in cryptographic functions (dm-crypt and ecryptfs). Please fill up a wiki page with some instructions that allow to evaluate the performance gap between GPU computed functions and CPU computed ones.

Thank you.

wbsun commented 12 years ago

For KGPU benchmark, I think you should measure the time of kgpu_call_sync for synchronized GPU call, or start timing before kgpu_call_async and end it at the request callback. This includes overhead of KGPU framework, which is proper because every components in kernel using KGPU have to go through such path.

If you simply want to measure the crypto function and don't want to include other context overhead such as dm-crypt and ecryptfs, you can write a kernel module that creates a crypto cipher named "gaes_ecb(aes)" or "gaes_ctr(aes)" or "gaes_xts(aes)" for ECB, CTR, and XTS ciphers. Then measure the performance of that cipher with some random data.

If you want to benchmark dm-crypt or ecryptfs or MD, I would suggest you use some disk or fs benchmark tools, such as iozone or filebench, rather than timing inside those modules.

codutti commented 12 years ago

What I want is to benchmark dm-crypt with and without kgpu. I'm following the instructions on github, I cannot tell if I'm really using kgpu or not because I cannot see performance improvements with the helper started. It seems that I'm still using the cpu when I've loaded kgpu modules and started the helper with the command runkgpu. I've done some test using the dm-crypt module inside kgpu build directory and setting up crypt setup with aes-xts-plain64 or aes-ecb-plain64 cyphers. They perform as fast as when I'm not using kgpu. What I'm asking you is how do you have benchmarked the dm-module with kgpu. Thanks.

wbsun commented 12 years ago

When setting up a dm-crypt target, use gaes_ecb-ecb-plain64, or gaes_ctr-ecb-plain64, or gaes_xts-ecb-plain64 cipher. Make sure gaes_ecb, gaes_ctr, gaes_xts modules in kgpu are loaded before using them. kgpu crypto services combine crypto algorithms and block modes together.