GPU, CPU, OS, Computer Info and Benchmarking Database

When creating applications for end users I believe we need a very simple
database with the following:

  1. 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.

  1. 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.

I put together a simple REST web service allowing to send the info to
the database on our servers via Put request and get the info
from database via Get request. The response from the Get request
will be multiple records corresponding to the card name id if we have more than one
records. This REST web service can be invoked by simply entering a line in the
browser, or invoking it via a program. I will make an equivalent SOAP and XML versions.

Here is the specification:

localhost will be replaced with actual domain name later.
http // localhost/CUDTACheckREST/Service.svc/doCUDACheck
Request – REST with Put with CUDA card name, Response - XML string via Get.

Request in CUDACheck field of the browser:
http // localhost/CUDACheckREST/Service.svc/doCUDACheck?id=xxx&c=test&opt=Put&
comp=Dell Precision 670&os=Windows 7 64bit&Cclk=3&Cmem=4&CallcH=217746.3&
CfreeH=4242.24&Gname= Quadro FX 1800&GCCver=1.1&Gmem=770&GallcD=10638.23&
GfreeD=31588.73&Gcores=64&Garch=G94&Gpow=59&Gtrdblck=512&Gtrdwrp=32&Ghd=1581.54&Gdh=2653.89&GallcD=10638.23&GfreeD=31588.73

CUDA check REST properties:
c={Comment} – a comment field
id={CustomerID} - CustomerID
opt={Put|Get} - Put: save information; Get: read information
comp={Computer}- Computer brand name
os={OS}- Operating System Name, version, 32 or 64 bit
Cclk={CPUClck} – CPU Clock in GHz
Cmem={CPUMem} - CPU Memory in MB
CallcH={CPUMemAllcHostSpd} in MB/Sec
CfreeH={CPUMemFreeHostSpd} in MB/Sec
Gname={GPUName}- NVIDIA GPU brand name
GCCver={GPUCCVer}- Computing Capability version
Gclk={GPUClck}– CPU Clock in GHz
Gmem={GPUMem}- CPU Memory in MB
GallcD={GPUMemAllcDevSpd} in MB/Sec
GfreeD={GPUMemFreeDevSpd} in MB/Sec
Gcores={GPUCores}
Garch={GPUArch} - GPU Architecture- G92, G94, GT200
Gpow={GPUPow} GPU Power requirements in Watts
Gtrdblck={GPUThrdsPerBlck}
Gtrdwrp={GPUThrdsPerWarp}
Ghd={GPUHostToDevSpd} in MB/Sec
Gdh={GPUDevToHostSpd} in MB/Sec
Gdd={GPUDevToDevSpd} in MB/Sec
GallcD={GPUMemAllcDevSpd} in MB/Sec
GfreeD={GPUMemFreeDevSpd} in MB/Sec

Response:
http://localhost/CUDACheckREST/Service.svc…mp;Gname=Quadro FX 1800

You can see the XML result in the browser.

<?xml version="1.0" encoding="utf8"?> 1.00 Test OK 1 1 Dell Precision 670 Windows 7 64bit 3 4 217746.3 4242.24 Quadro FX 1800 1.1 770 10638.23 31588.73 64 G94 59 512 32 1581.54 2653.89 10638.23 31588.73 2 Dell Precision 670 Vista 64bit 3 4 217746.3 4242.24 Quadro FX 1800 1.1 770 10638.23 31588.73 64 G94 59 512 32 1581.54 2653.89 10638.23 31588.73