{"id":1366,"date":"2011-07-25T19:04:05","date_gmt":"2011-07-25T23:04:05","guid":{"rendered":"https:\/\/www.bu.edu\/pasi\/?page_id=1366"},"modified":"2011-08-13T10:31:40","modified_gmt":"2011-08-13T14:31:40","slug":"post-pasi-training-week-1","status":"publish","type":"page","link":"https:\/\/www.bu.edu\/pasi\/materials\/post-pasi-training\/post-pasi-training-week-1\/","title":{"rendered":"Post-PASI training: Week 1"},"content":{"rendered":"<h2>Syllabus<\/h2>\n<h2><span style=\"font-weight: normal; font-size: 13px;\"><strong>Class 1 (August 8th):<\/strong><\/span><\/h2>\n<p><span style=\"font-weight: normal; font-size: 13px;\"><strong><a href=\"\/pasi\/files\/2011\/07\/Lecture1.pdf\">Lecture 1 &#8211; slides<\/a><\/strong><\/span><\/p>\n<p><strong> <\/strong><\/p>\n<ul>\n<li>Understand the need for multi-core in applications<\/li>\n<li>Manycore architecture:\n<ul>\n<li>GPU vs CPU chip design<\/li>\n<li>Data parallelism<\/li>\n<li>Concepts behind a CUDA-friendly algorithm<\/li>\n<\/ul>\n<\/li>\n<li>Basic CUDA:\n<ul>\n<li>C-like language<\/li>\n<li>Threads and thread hierarchy<\/li>\n<li>Launching a CUDA kernel<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p><strong>Lab 1 (August 9th):<\/strong><\/p>\n<p><strong><a href=\"\/pasi\/files\/2011\/07\/Lab11.pdf\">Lab1 &#8211; slides<\/a><\/strong><\/p>\n<p><a href=\"\/pasi\/files\/2011\/07\/codes_lab11.zip\">Lab1 &#8211; Codes<\/a><\/p>\n<p><a href=\"\/pasi\/files\/2011\/07\/matrixMultiplication.cu_1.zip\">matrixMultiplication.cu<\/a><\/p>\n<ul>\n<li>Familiarize with CUDA and nvcc compiler<\/li>\n<li>Device query<\/li>\n<li>Launch a simple vector add<\/li>\n<li>Implement a matrix matrix multiplication<\/li>\n<\/ul>\n<ul>\n<li><strong>References: <\/strong>\n<ul>\n<li>Kirk, D. and Hwu, W. Programming Massively Parallel Processors. (<a href=\"http:\/\/courses.engr.illinois.edu\/ece498\/al\/textbook\/Chapter1-Introduction.pdf\">Ch. 1<\/a>,\u00a0<a href=\"http:\/\/courses.engr.illinois.edu\/ece498\/al\/textbook\/Chapter2-CudaProgrammingModel.pdf\">Ch. 2<\/a>,\u00a0<a href=\"http:\/\/courses.engr.illinois.edu\/ece498\/al\/textbook\/Chapter3-CudaThreadingModel.pdf\">Ch. 3<\/a>)<\/li>\n<li><a href=\"http:\/\/developer.download.nvidia.com\/compute\/DevZone\/docs\/html\/C\/doc\/CUDA_C_Programming_Guide.pdf\">CUDA C Programming Guide. Version 4<\/a>. Ch. 1-2<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p><strong>Class 2 (August 10th):<\/strong><\/p>\n<p><strong><a href=\"\/pasi\/files\/2011\/07\/Lecture2.pdf\">Lecture 2 &#8211; slides<\/a><\/strong><\/p>\n<ul>\n<li>Programming model: mapping the discretized model to the GPU threads<\/li>\n<li>Warps and warp scheduling<\/li>\n<li>Multilevel memory hierarchy\n<ul>\n<li>Shared, global, registers, textures, constant, texture memories<\/li>\n<li>Sizes and latency<\/li>\n<\/ul>\n<\/li>\n<li>Fundamentals of the finite difference method<\/li>\n<\/ul>\n<p><strong>Lab 2 (August 11th):<\/strong><\/p>\n<p><strong><a href=\"\/pasi\/files\/2011\/07\/Lab21.pdf\">Lab2 &#8211; Slides<\/a><\/strong><\/p>\n<p><a href=\"\/pasi\/files\/2011\/07\/codes_lab21.zip\">Lab2 &#8211; Codes<\/a><\/p>\n<p><a href=\"\/pasi\/files\/2011\/07\/FD_2D_global.cu_.zip\">FD_2D_global.cu<\/a><\/p>\n<p><a href=\"\/pasi\/files\/2011\/07\/FD_2D_texture_pad.cu_.zip\">FD_2D_texture_pad.cu<\/a><\/p>\n<ul>\n<li>Implementation 2D explicit heat transfer with global memory<\/li>\n<li>Implementation 2D explicit heat transfer with texture memory<\/li>\n<\/ul>\n<ul>\n<li><strong>References: <\/strong>\n<ul>\n<li><a href=\"http:\/\/courses.engr.illinois.edu\/ece498\/al\/textbook\/Chapter4-CudaMemoryModel.pdf\">Kirk, D. and Hwu, W. Programming Massively Parallel Processors (Ch. 4)<\/a><\/li>\n<li><a href=\"http:\/\/developer.download.nvidia.com\/CUDA\/CUDA_Zone\/papers\/gpu_3dfd_rev.pdf\">Micikevicius P. 3D Finite Difference Computations on GPUs using CUDA<\/a><\/li>\n<li>Sanders, J. And Kandrot E. CUDA by Example. (Ch. 7)<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p><strong>Class 3 (August 12th):<\/strong><\/p>\n<p><strong><a href=\"\/pasi\/files\/2011\/07\/Lecture31.pdf\">Lecture 3 &#8211; Slides<\/a><\/strong><\/p>\n<ul>\n<li>Shared memory in detail<\/li>\n<li>Tiling<\/li>\n<li>Bank conflicts<\/li>\n<li>Race conditions and atomic operations<\/li>\n<\/ul>\n<ul>\n<li><strong>References: <\/strong>\n<ul>\n<li>Kirk, D. and Hwu, W. Programming Massively Parallel Processors. (<a href=\"http:\/\/courses.engr.illinois.edu\/ece498\/al\/textbook\/Chapter4-CudaMemoryModel.pdf\">Ch. 4<\/a>,\u00a0<a href=\"http:\/\/courses.engr.illinois.edu\/ece498\/al\/textbook\/Chapter5-CudaPerformance.pdf\">Ch. 5<\/a>)<\/li>\n<li><a href=\"http:\/\/developer.download.nvidia.com\/CUDA\/CUDA_Zone\/papers\/gpu_3dfd_rev.pdf\">Micikevicius P. 3D Finite Difference Computations on GPUs using CUDA<\/a><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Syllabus Class 1 (August 8th): Lecture 1 &#8211; slides Understand the need for multi-core in applications Manycore architecture: GPU vs CPU chip design Data parallelism Concepts behind a CUDA-friendly algorithm Basic CUDA: C-like language Threads and thread hierarchy Launching a CUDA kernel Lab 1 (August 9th): Lab1 &#8211; slides Lab1 &#8211; Codes matrixMultiplication.cu Familiarize with [&hellip;]<\/p>\n","protected":false},"author":3344,"featured_media":0,"parent":1297,"menu_order":1,"comment_status":"closed","ping_status":"open","template":"","meta":[],"_links":{"self":[{"href":"https:\/\/www.bu.edu\/pasi\/wp-json\/wp\/v2\/pages\/1366"}],"collection":[{"href":"https:\/\/www.bu.edu\/pasi\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.bu.edu\/pasi\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.bu.edu\/pasi\/wp-json\/wp\/v2\/users\/3344"}],"replies":[{"embeddable":true,"href":"https:\/\/www.bu.edu\/pasi\/wp-json\/wp\/v2\/comments?post=1366"}],"version-history":[{"count":29,"href":"https:\/\/www.bu.edu\/pasi\/wp-json\/wp\/v2\/pages\/1366\/revisions"}],"predecessor-version":[{"id":1515,"href":"https:\/\/www.bu.edu\/pasi\/wp-json\/wp\/v2\/pages\/1366\/revisions\/1515"}],"up":[{"embeddable":true,"href":"https:\/\/www.bu.edu\/pasi\/wp-json\/wp\/v2\/pages\/1297"}],"wp:attachment":[{"href":"https:\/\/www.bu.edu\/pasi\/wp-json\/wp\/v2\/media?parent=1366"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}