Professional Documents
Culture Documents
Contents
2 EXECUTION MODEL
3 IMPLEMENTATION
4 APPLICATION
6/3/2019 2
Seminar ‘11 CUDA
GPU
Host = CPU
Executes serial portions of an application
6/3/2019 6
Seminar ‘11 CUDA
Thread batching
Thread cooperation is valuable
Share results to avoid redundant computation
Share memory accesses
Thread ID is calculated by
6/3/2019 8
Seminar ‘11 CUDA
6/3/2019 9
Seminar ‘11 CUDA
Transparent Scalability
6/3/2019 10
Seminar ‘11 CUDA
CUDA architectures
6/3/2019 11
Seminar ‘11 CUDA
G80
GT200
6/3/2019 12
Seminar ‘11 CUDA
Per block
Block
Per device
6/3/2019 13
Seminar ‘11 CUDA
Host can read and write global memory but not shared
memory
6/3/2019 14
Seminar ‘11 CUDA
Execution Model
Threads are executed
by thread processors
A kernel is launched as
a grid of thread blocks
6/3/2019 15
Seminar ‘11 CUDA
6/3/2019 16
Seminar ‘11 CUDA
6/3/2019 17
Seminar ‘11 CUDA
Example
int main(void){
float *a_h, *b_h; //host data
float *a_d, *b_d; //device data Host Device
int N = 15, nBytes, i;
nBytes = N*sizeof(float); a_h a_d
a_h = (float*)malloc(nBytes);
b_h = (float*)malloc(nBytes);
b_h b_d
cudaMalloc((void**)&a_d,nBytes);
cudaMalloc((void**)&b_d,nBytes);
for(i=0; i<N; i++) a_h[i]=100.f +i;
cudaMemcpy(a_d, a_h, nBytes, cudaMemcpyHostToDevice);
cudaMemcpy(b_d, a_d, nBytes, cudaMemcpyDeviceToDevice);
cudaMemcpy(b_h, b_d, nByyes, cudaMemcpyDeviceToHost);
for(i=0; i<N; i++) assert(a_h[i] == b_h[i]);
free(a_h); free(b_h); cudaFree(a_d); cudaFree(b_d);
return 0;}
6/3/2019 18
Seminar ‘11 CUDA
Applications
Advantages
Cost effective
Transparent Scalability
6/3/2019 20
Seminar ‘11 CUDA
Drawbacks
6/3/2019 21
Seminar ‘11 CUDA
Future Scope
6/3/2019 22
Seminar ‘11 CUDA
Conclusion
6/3/2019 23
Seminar ‘11 CUDA
References
1. “CUDA by Example: An Introduction to General-Purpose GPU
Programming” by Edward kandrot
2. “Programming Massively Parallel Processors: A Hands-on Approach
(Applications of GPU Computing Series)” By David B kirk & Wen Mei W.
Hwu.
3. “GPU Computing Gems Emerald Edition (Applications of GPU Computing
Series)” By Wen-mei W. Hwu .
4. “The Cost To Play: CUDA Programming” , By Douglas Eadline, Ph.D. ,on
Linux Magazine Wednesday, February 17th, 2010
5. “Nvidia Announces CUDA x86” Written by Cristian, On Tech Connect
Magazine 21 September 2010
6. CUDA Programming Guide. ver. 1.1,
http://www.nvidia.com/object/cuda_develop.html
7. TESLA GPU Computing Technical Brief,
http://www.nvidia.com/object/tesla_product_literature.html
8. G80 architecture reviews and specification,
http://www.nvidia.com/page/8800_reviews.html,
http://www.nvidia.com/page/8800_tech_specs.html
9. Beyond3D G80: Architecture and GPU Analysis,
http://www.beyond3d.com/content/reviews/1
10. Graphics adapters supporting CUDA,
http://www.nvidia.com/object/cuda_learn_products.html
6/3/2019 24
Seminar ‘11 CUDA
Questions?????
6/3/2019 26