{"id":1387,"date":"2011-07-25T19:16:29","date_gmt":"2011-07-25T23:16:29","guid":{"rendered":"https:\/\/www.bu.edu\/pasi\/?page_id=1387"},"modified":"2011-08-25T19:57:14","modified_gmt":"2011-08-25T23:57:14","slug":"post-pasi-training-week-3","status":"publish","type":"page","link":"https:\/\/www.bu.edu\/pasi\/materials\/post-pasi-training\/post-pasi-training-week-3\/","title":{"rendered":"Post-PASI training: Week 3"},"content":{"rendered":"<h2>Syllabus<\/h2>\n<h2><span style=\"font-weight: normal; font-size: 13px;\"><strong>Class 6 (August 22nd):<\/strong><\/span><\/h2>\n<h2><span style=\"font-weight: normal; font-size: 13px;\"><strong><a href=\"\/pasi\/files\/2011\/07\/Lecture6.pdf\">Lecture 6 &#8211; Slides<\/a><br \/>\n<\/strong><\/span><\/h2>\n<ul>\n<li>Overview of CUDA libraries<\/li>\n<li>Thrust library: STL for CUDA<\/li>\n<li>Overview of features:\n<ul>\n<li>Containers<\/li>\n<li>Iterators<\/li>\n<li>Algorithms<\/li>\n<\/ul>\n<\/li>\n<li>Best practices in Thrust<\/li>\n<\/ul>\n<p><strong>Lab 5 (August 23rd):<\/strong><\/p>\n<p><strong><a href=\"\/pasi\/files\/2011\/07\/Lab5.pdf\">Lab 5 &#8211; Slides<\/a><\/strong><\/p>\n<p><strong><a href=\"\/pasi\/files\/2011\/07\/lab5_weld_vertices.cu_.zip\">lab5_weld_vertices.cu<\/a><\/strong><\/p>\n<p><strong><a href=\"\/pasi\/files\/2011\/07\/weld_vertices.cu_.zip\">weld_vertices.cu<\/a><br \/>\n<\/strong><\/p>\n<ul>\n<li>Do examples using thrust:<\/li>\n<li>Sum, sort, element wise operation, copy_if, etc.<\/li>\n<li>Welding triangles example<\/li>\n<\/ul>\n<ul>\n<li><strong>References: <\/strong>\n<ul>\n<li><a href=\"http:\/\/code.google.com\/p\/thrust\/\">http:\/\/code.google.com\/p\/thrust\/<\/a><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p><strong>Class 7 (August 24th):<\/strong><\/p>\n<p><strong><a href=\"\/pasi\/files\/2011\/07\/Lecture7.pdf\">Lecture 7 &#8211; Slides<\/a><br \/>\n<\/strong><\/p>\n<ul>\n<li>Overview of sparse matrices\n<ul>\n<li>Sparse matrix formats<\/li>\n<li>Solvers and preconditioners<\/li>\n<\/ul>\n<\/li>\n<li>Cusp library: Sparse matrix algebra in CUDA\n<ul>\n<li>Matrix containers in Cusp: types and formats<\/li>\n<li>Solvers: CG, BiCG, GMRES, etc.<\/li>\n<li>Preconditioners<\/li>\n<\/ul>\n<\/li>\n<li>Example: 2D Finite difference Poisson<\/li>\n<\/ul>\n<p><strong>Lab 6 (August 25th):<\/strong><\/p>\n<p><strong><a href=\"\/pasi\/files\/2011\/07\/Lab6.pdf\">Lab 6 &#8211; Slides<\/a><\/strong><\/p>\n<p><strong><a href=\"\/pasi\/files\/2011\/07\/codes_lab6.zip\">Lab 6 &#8211; Codes<\/a><\/strong><\/p>\n<p><strong><a href=\"\/pasi\/files\/2011\/07\/poisson.cu_.zip\">poisson.cu<\/a><\/strong><\/p>\n<p><strong><a href=\"\/pasi\/files\/2011\/07\/spMV_csr.cu_.zip\">spMV_csr.cu<\/a><\/strong><\/p>\n<p><strong><a href=\"\/pasi\/files\/2011\/07\/spMV_ell.cu_.zip\">spMV_ell.cu<\/a><br \/>\n<\/strong><\/p>\n<ul>\n<li>Implement 2D Poisson solver with Cusp<\/li>\n<li>Compare timings with different:\n<ul>\n<li>Solvers<\/li>\n<li>Preconditioners<\/li>\n<li>Matrix formats<\/li>\n<\/ul>\n<\/li>\n<li>Implement a sparse matrix vector multiplication<\/li>\n<\/ul>\n<ul>\n<li><strong>References:<\/strong>\n<ul>\n<li><a href=\"http:\/\/code.google.com\/p\/cusp-library\/\">http:\/\/code.google.com\/p\/cusp-library\/<\/a><\/li>\n<li><a href=\"http:\/\/sg.nvidia.com\/docs\/IO\/77944\/sc09-spmv-throughput.pdf\">Bell, N. and Garland, M. Implementing Sparse Matrix-Vector Multiplication on Throughput-Oriented Processors.<\/a><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p><strong>Class 8 (August 26th):<\/strong><\/p>\n<p><strong><a href=\"\/pasi\/files\/2011\/07\/Lecture83.pdf\">Lecture 8 &#8211; Slides<\/a><br \/>\n<\/strong><\/p>\n<ul>\n<li>CUFFT: Fast Fourier Transform in CUDA<\/li>\n<li>PyCUDA: GPU computing using Python<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Syllabus Class 6 (August 22nd): Lecture 6 &#8211; Slides Overview of CUDA libraries Thrust library: STL for CUDA Overview of features: Containers Iterators Algorithms Best practices in Thrust Lab 5 (August 23rd): Lab 5 &#8211; Slides lab5_weld_vertices.cu weld_vertices.cu Do examples using thrust: Sum, sort, element wise operation, copy_if, etc. Welding triangles example References: http:\/\/code.google.com\/p\/thrust\/ Class [&hellip;]<\/p>\n","protected":false},"author":3344,"featured_media":0,"parent":1297,"menu_order":3,"comment_status":"closed","ping_status":"closed","template":"","meta":[],"_links":{"self":[{"href":"https:\/\/www.bu.edu\/pasi\/wp-json\/wp\/v2\/pages\/1387"}],"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=1387"}],"version-history":[{"count":16,"href":"https:\/\/www.bu.edu\/pasi\/wp-json\/wp\/v2\/pages\/1387\/revisions"}],"predecessor-version":[{"id":1434,"href":"https:\/\/www.bu.edu\/pasi\/wp-json\/wp\/v2\/pages\/1387\/revisions\/1434"}],"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=1387"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}