Presentation is loading. Please wait.

Presentation is loading. Please wait.

2012/06/22 Contents  GPU (Graphic Processing Unit)  CUDA Programming  Target: Clustering with Kmeans  How to use.

Similar presentations


Presentation on theme: "2012/06/22 Contents  GPU (Graphic Processing Unit)  CUDA Programming  Target: Clustering with Kmeans  How to use."— Presentation transcript:

1 2012/06/22 Email: nomura@am.ics.keio.ac.jp

2 Contents  GPU (Graphic Processing Unit)  CUDA Programming  Target: Clustering with Kmeans  How to use toolkit1.0  Towards the fastest program

3 GPU (Graphic Processing Unit)  Multicore processor Several handreds cores SP: Core in GPU SM: Composed of SPs  High memory bandwidth GPU SM Global Memory SM SP 240 SM 30 (Each of them has 8 SP) Memory Bandwidth 141.7 GB/s SP SP: Streaming Processor SM: Streaming MultiProcessor … Table: Specification of GeForce280

4 Flow of CUDA Program 1. Allocate GPU memory cudaMalloc() 2. Transfer input data cudaMemcpy() 3. Execute kernel 4. Transfer result data 5. Free GPU memory cudaFree() Host Device (GPU) SP CPU Main Memory Global Memory SP Kernel SP Kernel … input 1 input 2 …… input N Array …… input 1 input 2 input N Data Transfer output 1 output 2 output N output 1 output 2 output N Data Transfer

5 Target application : clustering with Kmeans  A famous method for clustering  A program with kmeans method for a host processor is given. Modify it so that it works on GPU as fast as possible.  GeForce Tesla (GTX280) in Amano Lab. can be used for this contest.

6 Kmeans method(1/5) Initial state : Nodes in a certain color is distributed randomly. (Here, 100nodes with 5 colors are shown) STEP1: Centre of gravity is computed for each colored node set. (X in the figure is each centre) Reference URL: http://d.hatena.ne.jp/nitoyon/20090409/kmeans_visualise

7 Kmeans method(2/5) STEP2 The color of each node is changed into that of the nearest centre. STEP1: Again, the centre of gravity is computer in node set with the same color.

8 Kmeans method(3/5) STEP2: Again, the color of each node is changed into that of the nearest centre. STEP1: Again, the centre of gravity is computer in node set with the same color.

9 Kmeans method(4/5) STEP2: Again, the color of each node is changed into that of the nearest centre. STEP1: Again, the centre of gravity is computer in node set with the same color.

10 Kmeans method(5/5) STEP2: Again and again, the color of each node is changed into that of the nearest centre. Terminate Condition : The color of all nodes are the same as the color of the centre, thus, there is no need to change the color. →Terminate.

11 How to start  ssh 131.113.69.98 for login. Your account has been available. If you have not received mail about account, please send mail to nomura@am.ics.keio.ac.jp. nomura@am.ics.keio.ac.jp  Download kmeans.tar.gz and ungip.  There are useful sample codes in kmeans.  Mission 1: Make GPU version based on CPU version. Describe gpuKMeans in kmeans.cu cpuKMeans in main.cu is a CPU version for reference.  Mission 2: Optimize the CPU code so that it runs as fast as possible.

12 Toolkit1.0  kmeans.cu To describe K-means program for GPU Please modify this file  main.cu To read input data, describe CPU program Modification forbidden  check.c To visualize output data by OpenCV  gen.c To generate input data  Makefile  data/ Input data  result/ Output data

13 How to use Toolkit1.0  $ make Compile  $ make gpu Execute GPU Program  $ make cpu Execute CPU Program  $./gen SEED (SEED = 0,1,2,…) Generate input data

14 Sample Code  Vector addition program for GPU $ make : Compile $./main : Program run  Point Memory allocation on GPU ○ cudaMalloc(), cudaFree() Data transfer between CPU and GPU ○ cudaMemcpy() Format of GPU kernel function

15 Towards the fastest program  Minimum requirement Implementation K-means program on GPU Parallelizing STEP1 or STEP2 in K-means  How to optimize program Parallelizing both of STEP1 and STEP2 Shared memory, Constant memory Coalesced Memory Access etc  Web Site NVIDIA GPU Computing Document: http://developer.nvidia.com/nvidia-gpu-computing- documentation http://developer.nvidia.com/nvidia-gpu-computing- documentation Fixstars CUDA Infromation Site: http://gpu.fixstars.com/index.php/

16 Announcement:  If you have not an account mail to nomura@am.ics.keio.ac.jp nomura@am.ics.keio.ac.jp Your name should be included in the mail.  Deadline : 7/22 (Fri) 24:00  Copy follows in ~/comparch Source code and simple report  Please check the web site. Additional information will be on it. Please check the web site. Additional information will be on it.  If you have any question about the contest, please send mail to: nomura@am.ics.keio.ac.jp nomura@am.ics.keio.ac.jp


Download ppt "2012/06/22 Contents  GPU (Graphic Processing Unit)  CUDA Programming  Target: Clustering with Kmeans  How to use."

Similar presentations


Ads by Google