Benchmarks for cuda

Dear all;

I had read in many papers about benchmarks, but i didn’t exactly understand what they are .
can any one tell me what is benchmark and what benchmark i can use? since i developed the merge sort with cuda using the vs 2013


“benchmark” typically refers to a (standardized) program designed to provide a performance gauge, either with regard to a particular relevant performance metric (e.g. memory bandwidth measured by the STREAM benchmark) or composite application level performance (e.g. various SPEC benchmarks).

In the best case, benchmarks can provide some guidance to the software development process. For example FFTs are known to be bandwidth limited as they get larger so the efficiency of one’s FFT implementation could be assessed to first order by comparing its memory throughput with STREAM results.

Frequently benchmark results are used for non-technical purposes such as marketing, which has given rise to the adage that there are “lies, damned lies, and benchmarks”. So one should use caution when comparing and interpreting benchmark results reported by various sources.

Often it is best to simply measure the performance of the application(s) one is interested directly as this is the most relevant metric, rather than trying to find a benchmarks which approximates the application or aspects of it.

Thanks njuffa,

Can “Nsight” software that id developed by Nvidia used instead of benchmark?

NVIDIA Nsight is primarily a debugger, that is, a development tool. I see no connection to performance benchmarks.

What are you trying to accomplish? Can you list some of the papers you have been reading and mentioned above?

i had developed parallel merge sort with cuda c for my thesis
i want to measure the performance for my developed algorithm

some one told me that benchmarks is nearly a huge number of data that can be used to measure the performance some algorithm
is that correct?

I take it you simply want to characterize the performance of your code, that is, you want to “benchmark” it. If you want to compare your results with published results, you would want to check whether there are any sort of semi-standard data sets being used to measure and compare sorting speed and if so, find out where to obtain that data.

In the absence of standard data sets to measure against, you could characterize the performance of your code using your own data sets. Consider what kind of properties would have an influence on performance. A few I can think off off the top of my head are: (1) the size of the data set (2) the distribution of keys in the data set, such as uniformly random, sorted, reverse sorted (3) the size of each keyed record.

You would also want to consider how to set up your measurement methodology. What should the resolution of the timer be? How are you going to account for measurement noise (e.g. averaging, best-of-N)?

As you are doing thesis work, you may want to discuss with your advisor any conclusions you reach from studying the literature and pondering how performance characterization methodologies you find describe there apply to your specific use case.