I’m starting off with CUDA by looking at the Scalar Product example in the SDK in:
C:\Program Files\NVIDIA Corporation\NVIDIA CUDA SDK\projects\scalarprod
Within the file scalarProc.cu file, there is a line like this:
scalarProdGPU<<<128, 256>>>(d_C, d_A, d_B, VECTOR_N, ELEMENT_N);
It looks like a method is being called with 5 parameters, but what do the numbers 128 and 256 mean within the < and >'s? I can see the scalarProdGPU method within the file scalarProd_kernel.cu, but I don’t see where the numbers would be passed to.
I’m familiar with C and Java syntax; if this is something special within C++, I haven’t seen it before. Or is this type of method call a part of CUDA?
As an aside, I measured 2.24GB/sec data transfer (about 400MB) from the CPU to the GPU, which has 512MB of memory. Though the card is running on PCIe 2.0 x16 (which has a theoretical bandwidth of 5.0GB/sec) is the fact that it’s roughly 45% of theoretical bandwidth attributed to the fact the card’s being used as the primary display driver as well, with 2 monitors connected to it?