When creating applications for end users I believe we need a very simple
database with the following:
- Environment info
Computer, OS, CPU Clock, RAM, NVIDIA GPU
For NVIDIA GPU:
Number of GPUs, Total Cores, GPU architecture, Speed, Memory, Power Requirements, Threads/block, threads/warp, etc.
- Very simple benchmarks
Host->Device, Device->Device, Device->Host
The output .CSV comma delimited file. For comparisons - charts.
I created a very simple application doing this with a chart interface. The idea is to be executed on different machines
and collect the .CSV files in one place.
Here is a sample of 1)
Computer,OS,CPU Clock, RAM, Dev,Ver,GlbMemB,ConstMemB,ShMemB,RegsBlck,WarpSze,MaxThrBlck
,MemPtch,ClckRtGHz
Dell Precision 670,Windows 7 64-bit,3,4, Quadro FX 1800,1.1,805306368,65536,16384,8192,32,512,262144,1.38
Here is a sample of 2):
Num,Name,ms,MB,MB/s,N
16,allcR+,0.02,121.00,5893668.00,31719424
16,allcH,0.56,121.00,217746.36,31719424
16,allcD,22.75,242.00,10638.23,31719424
16,H->D*,76.51,121.00,1581.54,31719424
16,RevR+,73.0985,121.00,1655.30,31719424
16,RevD*(61952|512),14.7152,121.00,8222.77,31719424
16,D->H*,45.59,121.00,2653.89,31719424
16,freeD,7.66,242.00,31588.73,31719424
16,freeH,45.59,121.00,2654.37,31719424
16,freeR+,28.52,121.00,4242.24,31719424
16,RT1,73.10,121.00,1655.30,31719424
16,DT2(1.21x speedup),60.31,121.00,2006.34,31719424
If this program is executed on many machines and the output is collected in one place
we can have a comparison database.
Embedding this database in applications would give more
possibilities the application to be reconfigured at run time
specifically for the end user computer.