999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

新時期“GPU并行計算”課程體系與教學模式設計

2024-08-23 00:00:00譚立湘李斌鄭重
信息系統(tǒng)工程 2024年8期
關鍵詞:評價體系教學模式

摘要:為滿足新時期人工智能交叉方向人才培養(yǎng)需求,對“GPU并行計算”課程體系與教學模式進行了積極的探索和實踐。理論教學方面,夯實并行計算基本理論,強化并行算法設計、GPU并行編程技巧及優(yōu)化方法。實踐教學方面,通過漸進式實驗項目的反復迭代,幫助學生建立實踐經驗和應用信心。新體系通過多樣的教學模式使學生緊跟并行計算研究的前沿技術。通過鼓勵不斷創(chuàng)新和探索的課程評價體系使學生能夠自覺、自愿地將并行計算應用于科學研究。

關鍵詞:GPU并行計算;體系設計;教學模式;評價體系

一、前言

隨著多核CPU及GPU(Graphic Processing Unit)硬件產品的普及,并行計算技術突飛猛進,已成為人工智能高速發(fā)展的算力基石。目前許多高性能個人電腦上已經配置了GPU獨立顯卡,組成了CPU+GPU的異構并行計算平臺,此平臺的廣泛使用能顯著縮短人工智能各類算法的計算時間[1]。當前深度學習方向的主要底層實現技術既包含基于多核CPU硬件架構,又包含基于多核GPU架構的并行計算。

針對非計算機專業(yè)背景研究生計算機理論基礎較弱的問題,筆者研究探索了現代并行計算的有效教學方法,對現有“GPU并行計算”課程體系和教學模式進行了改革。課程在傳統(tǒng)并行計算通用原理的基礎上,引入并強化了新計算架構下的并行計算技術、并行程序設計及優(yōu)化方法。

二、“GPU并行計算”課程體系設計

本課程是為中國科學技術大學非計算機專業(yè)的研究生開設的專業(yè)選修課,課程在介紹并行計算基本理論和體系結構的基礎上,深入介紹了多核CPU并行編程和GPU并行編程的平臺配置、算法設計、編程規(guī)范與技巧和各類程序優(yōu)化方法。

大多數非計算機專業(yè)的研究生在本科階段都學習了程序設計課程(如C語言、Python語言),養(yǎng)成了根深蒂固的串行計算思維,開始接觸較為難懂的并行計算理論,伴隨著編程調試上屢屢受挫,可能會放棄自主編寫并行程序,轉向直接調用Python和MATLAB的庫函數,或仍采用傳統(tǒng)的串行編程。因此,筆者不斷探索“上手快,體驗好,愿意用”的教學方法,保障學生能夠快速掌握并行編程技術。

“GPU并行計算”課程教學安排為理論課30學時,實踐課40學時,突出理論與實踐并重,課程體系設計如圖1所示。本課程貫徹“精講多練”的原則,培養(yǎng)學生快速進行并行程序設計的能力,并使學習過程遵循算法設計、精細編程、逐步優(yōu)化、體驗加速的良性循環(huán),在每一次迭代學習中不斷獲得成就感。課程教學內容在介紹并行計算基本理論和方法的基礎上,側重培養(yǎng)學生的并行計算思維方式和建立算法模型的能力。

理論課程章節(jié)主要內容及學時分配如下:

第一部分 并行計算基礎(共8學時);

第二部分 多核CPU并行編程(共8學時);

第三部分 GPU并行編程 (共14學時)。

理論課程的教學重點是:并行程序的基本設計思想及其性能評價方法;多核CPU的實現模型及OpenMP編程技術;GPU的硬件架構及CUDA編程技術和程序優(yōu)化方法。

實驗課程主要圍繞理論課程教學內容開展,通過漸進式實驗項目來強化學生對所學內容的理解,培養(yǎng)學生進行并行程序設計的能力,見表1。實驗教學中采用項目驅動實踐的模式,學生自主規(guī)劃項目進度,將本專業(yè)的實際課題用并行計算實現。

通過案例的學習和分析能幫助學生盡快建立并行計算的應用模型,因此在近幾年的課程教學中建立并不斷完善了面向大規(guī)模計算、圖像處理、視覺計算、深度學習等典型應用的實驗案例庫。

三、“GPU并行計算”課程教學模式改革

“GPU并行計算”課程教學模式改革的目標是面向新時代多專業(yè)人才的培養(yǎng)需求,既講授各種并行計算模型的設計思想和體系結構,又在實踐環(huán)節(jié)中培養(yǎng)學生開發(fā)并行程序的應用能力。筆者設計了“理實交融”的課程教學模式,具體包括如下四點:

理論講授:并行算法設計及編程模型——被動學習;

實驗設計:漸進式實驗項目——主動學習;

交流學習:典型應用案例庫、課程設計交流報告會——交流探討;

融合創(chuàng)新:完善課程設計,激發(fā)創(chuàng)新思維——提升能力。

本課程教學中采取了三大舉措,讓學生愛上并行編程。

(一)課程教學中貫穿“上手快”

為了讓學生對并行計算的原理和基本算法能快速入門,“第一部分 并行計算基礎”涉及的內容就能使學生快速了解并行程序設計的精髓。通過對MPI、OpenMP、CUDA小程序的剖析了解程序的基本構成,通過簡單的模仿練習解決實際問題,培育并行編程的興趣和能力。

在課堂教學中采用類比式教學把抽象的并行系統(tǒng)結構、計算模型用通俗易懂的類比講解,如將CPU的每個核類比為大學生,能力強,適合做粗粒度并行;GPU的每個核類比為小學生,能力稍弱但人數眾多,適合做細粒度并行[2]。

(二)實驗教學中貫穿“體驗好”

實驗教學中側重全方位的能力培養(yǎng),不再局限于學習單一的并行編程環(huán)境,而是引導學生了解硬件架構和軟件體系。課堂上,學生被動學習各種并行計算模型和使用規(guī)范。實驗中,通過學習案例逐漸培養(yǎng)自己的并行計算思維和并行編程技能,熟練掌握問題中的數據劃分、任務劃分技巧。通過精講多練的反復迭代,實現自身并行編程能力的提升。這種迭代學習的教學模式與人類天生的主動學習模式相吻合。

從一開始修改串行程序,只增加少量的編譯指導語句來實現并行程序的執(zhí)行,到后期熟練地把各類問題模型化、直接編寫并行程序,并考慮到數據讀取的快慢盡可能地使用離核最近的存儲器,使用各種優(yōu)化方法不斷加速程序的執(zhí)行。學生們在實踐環(huán)節(jié)不斷獲得的成就感增強了他們進行并行計算的信心,形成了依托并行計算思維開發(fā)并行程序解決實際問題的良性循環(huán)。

在課堂理論教學中,講解的程序范例從向量的求和、向量的點積、排序算法、矩陣相乘、經典迭代算法、快速傅里葉變換、到2D圖像濾波、3D光線追蹤等,由淺入深,循序漸進,讓學生在編程實戰(zhàn)中體會成就感。實驗課上,學生面對的是一個個精心設計并與上課內容相匹配的漸進式實驗項目,每一個項目的完成都將鞏固課堂上學習的知識點,融會貫通使用并行思維解決實際問題。課程配備的助教老師具有豐富的并行編程經驗,線上、線下都會耐心指導實驗中遇到困難的同學,并根據實驗結果的完成度和優(yōu)化方案的實現來給出成績。

(三)課程教學導向圍繞“愿意用”

對于大多數非計算機專業(yè)的研究生來說,并行計算難點在于算法模型的設計,以及編程調試中會遇到許多難以理解的BUG。解決之道無非是多練多做,并在教學班上培植出一種“人人都會并行計算”的氛圍。

GPU體系結構和CUDA編程技術是本課程的重點和難度,這部分內容包含大量術語,并且每隔一年GPU就會推出新的架構和硬件產品。如果缺乏對GPU硬件架構和軟件生態(tài)的了解,用戶很難像簡單的串行編程語言一樣,通過模仿程序示例寫出正確、高效的CUDA并行程序[3]。在長期的課程教學中,筆者探索出了保障學生快速掌握CUDA并行編程的三項舉措。

1.快速生成CUDA主函數

CUDA主函數運行在CPU端,主要完成分配和初始化內存空間和顯存空間、將要計算的數據從主機內存上傳輸到GPU顯存上、按指定的參數提交給GPU去執(zhí)行核函數、將計算后存在于GPU顯存上的結果數據傳輸至主機內存并做進一步處理,最后釋放顯存空間。

2.快速生成CUDA核函數

核函數是在GPU設備端上執(zhí)行的代碼,編程時要具有并行思維和想象力,站在線程的角度合理劃分數據和任務,用代碼描述清楚線程間的分工合作和具體要進行的計算步驟和數據訪問。在核函數的編寫中可以使用CUDA的內建變量直接獲得不同維度的線程號。

3. 逐步優(yōu)化獲得高加速比

能夠正確運行的并行程序并不意味著任務的完成,它只是一個程序的雛形,是逐步進行優(yōu)化的起點。只有了解GPU的硬件架構才能充分利用機器的資源,從而獲得優(yōu)良的加速比。常見的優(yōu)化包括根據顯卡的配置調整blocks、threads的數目,優(yōu)化指令流,合理使用共享內存、常量內存、紋理內存,保證數據的連續(xù)性,優(yōu)化顯存訪問,避免顯存帶寬成為瓶頸等。

四、鼓勵不斷創(chuàng)新和探索的課程評價體系

在學生最關注的成績評定環(huán)節(jié),本課程堅持鼓勵不斷創(chuàng)新和探索的精神。學生的項目設計和實踐不是簡單地重復已有算法,而是要求學生能將本專業(yè)的密集計算問題抽象出并行算法模型并加以編程實現,初步完成的程序作為優(yōu)化的起點,之后再結合不同架構下GPU顯卡的特點逐步進行線程配置優(yōu)化、指令優(yōu)化、存儲優(yōu)化。在項目設計和實現過程中,能逐步發(fā)現問題并解決問題、逐步優(yōu)化提高加速比的學生將得到成績上的鼓勵。

本課程擯棄了傳統(tǒng)的閉卷考試方式,主要采用的考核方式為平時實驗編程項目,及期末自主選題大型項目加上寫課程報告。自主選題大型項目上,鼓勵各個院系的學生將并行計算運用于解決本專業(yè)的計算問題。此環(huán)節(jié)是培育創(chuàng)新思維和學術交叉能力的重要手段,真正做到活學活用。在學期期末舉行課程研討會,由大項目完成優(yōu)秀者做報告展示成果,分享課程項目的設計思想及并行程序開發(fā)經驗,并獲得成績上的加分。此教學環(huán)節(jié)強化了項目實踐的重要性,培養(yǎng)了學生公開做學術報告的能力,幫助更多同學拓寬了學術視野,促進了交流與融合。

表2是本課程教學各環(huán)節(jié)的具體評價,體現了注重過程培養(yǎng)、注重專業(yè)知識和鼓勵創(chuàng)新思維、不斷探索的原則。公平、公正、公開的課程評價體系也受到了學生的擁護,學生選課積極踴躍,選課名額基本秒光。

通過一個學期的理論學習和實戰(zhàn)經歷,學生們普遍反映通過這門課程的學習,幫助自己建立起了完整的并行計算知識體系,并且快速掌握了并行編程的方法,為后續(xù)開展人工智能、大規(guī)??茖W計算的研究打下了基礎。最主要的體會是原來并行計算并不難!通過對算法的設計、語句的套用、庫函數的使用就能獲得成百上千倍的加速比。

五、課程教學面臨的具體問題及解決方法

“GPU并行計算”課程作為研究生的專業(yè)選修課對學生的編程能力有一定的要求,考慮到C語言是大部分理工類高校的必修編程語言,本課程的教學以C語言為基礎。在實際教學中發(fā)現學生C語言掌握的程度有所不同,有的學生本科階段沒有使用過Visual Studio集成編譯環(huán)境;有的學生缺乏用C語言開發(fā)實際應用程序的經驗;有的學生C語言中的部分內容沒有學過,如帶參數的main函數、指針做函數的參數、指針數組等。這些編程基礎問題都可能對本課程的學習帶來很大困擾。為此在理論和實驗教學中筆者采用了如下措施來夯實學生的C語言編程基礎。

第一次實驗課上布置安裝并測試機器CPU和GPU顯卡的參數配置;安裝測試Visual Studio集成編譯環(huán)境,并學習設置OpenMP的編譯環(huán)境和環(huán)境變量;在Visual Studio內加裝CUDA和OpenCV等軟件并測試運行CUDA SDK里的范例。實驗課上這種手把手教學使得編程能力欠缺的學生學習并行計算的信心大增,一次實驗課就基本掌握了本課程所需要的全部軟件編譯環(huán)境。

理論課上為學生彌補linux操作系統(tǒng)的基本用法,便于學生課后遠程連接學校超算中心及實驗室服務器進行并行程序的編寫和調試。復習C語言中指針做函數的參數、帶參數的main函數等內容,CUDA并行編程中的核函數和OpenMP并行編程中的主函數都是基于此類指針的使用。只有夯實了C語言編程的基礎才能在并行程序設計中不受語言的羈絆,專注于并行算法的設計與實現。

課程教學中注重分析并行機器硬件的體系結構,對比串行程序和并行程序不同的設計理念、執(zhí)行模式和調度策略。引導學生站在處理器的角度去體會如何獲取數據、處理數據才能充分地并行執(zhí)行;根據需要使用正確的存儲器,減少對GPU片外顯存的讀取,提高執(zhí)行單元的利用率,盡可能隱藏訪存延時。為了獲得高性能的計算結果,進行合理的并行劃分、設計巧妙的算法,同時兼顧指令吞吐量、數據傳輸帶寬等多方因素,所以實際編程中往往是把注意力先集中于并行算法的設計,優(yōu)先保證編寫出一個能正確運行的并行程序;然后再進行存儲優(yōu)化、指令優(yōu)化、調度優(yōu)化以獲得滿意的加速比。

六、結語

“GPU并行計算”課程力求通過理論與實踐并重的課程體系建設和精心準備的教學內容,在有限的學時內為學生講授并行計算的核心思想;通過漸進式教學實驗,提升學生的并行計算思維和并行算法設計及編程實現能力;通過多樣的教學形式使學生了解并行計算研究的前沿技術成果;通過鼓勵不斷創(chuàng)新和探索的課程評價體系使學生能夠更好地理解所學知識并自覺自愿地將并行計算應用于科學研究。近幾年來,對學生的調研結果及學生對課程的評價表明,各專業(yè)研究生通過本課程的學習能夠較好地掌握基本的并行編程原理和多核CPU、GPU并行編程技術,并能運用這些技術完成各專業(yè)相關領域算法的并行加速。

參考文獻

[1]遲學斌,王彥棢,王玨,等.并行計算與實現技術[M].北京:科學出版社,2015:46-56.

[2]雷洪,胡許冰.多核并行高性能計算OpenMP[M].北京:冶金工業(yè)出版社,2016:22-33.

[3]Shane Cook.CUDA并行程序設計(GPU編程指南)[M].蘇統(tǒng)華,李東,李松澤,魏通,譯.北京:機械工業(yè)出版社,2017:35-47.

基金項目:1.安徽省級質量工程教學研究項目“面向多專業(yè)研究生的‘GPU并行計算’教學研究與實踐”(項目編號:2020jyxm2271);2.中國科學技術大學質量工程教學研究項目“計算思維在程序設計類課程中的培育與探索”(項目編號:2021xjyxm064)

作者單位:中國科學技術大學信息科學技術學院

責任編輯:王穎振、楊惠娟

猜你喜歡
評價體系教學模式
群文閱讀教學模式探討
“思”以貫之“學、練、賽、評”教學模式的實踐探索
體育教學(2022年4期)2022-05-05 21:26:58
“以讀帶寫,以寫促讀”教學模式的實踐探索
甘肅教育(2020年12期)2020-04-13 06:25:48
《UG NX機械產品設計》課程項目化教學的改革研究
科技視界(2016年18期)2016-11-03 21:50:03
評價體系小改革職業(yè)技能大提升
職業(yè)(2016年10期)2016-10-20 22:00:12
以心育推進學生綜合素質評價體系建立的研究
自然資源資產離任審計評價體系研究
行政事業(yè)單位內部控制存在問題及對策
科技視界(2016年20期)2016-09-29 14:08:22
多元智能理論視角下高職院校體育課程評價體系的研究
科技視界(2016年20期)2016-09-29 11:31:29
“一精三多”教學模式的探索與實踐
主站蜘蛛池模板: 国产毛片基地| 久久久久青草大香线综合精品| 乱人伦99久久| www.国产福利| 这里只有精品在线| 四虎成人精品在永久免费| 91无码人妻精品一区| 欧美a在线| 日韩欧美在线观看| 精品福利国产| 国产欧美视频在线| 欧美成人免费午夜全| 亚洲最黄视频| 国产亚洲欧美在线专区| 免费av一区二区三区在线| 成年看免费观看视频拍拍| 最新无码专区超级碰碰碰| 永久免费无码日韩视频| 秋霞午夜国产精品成人片| 国产又色又刺激高潮免费看| 成年人视频一区二区| 红杏AV在线无码| 性视频一区| 国产精品视频第一专区| 最新亚洲人成无码网站欣赏网| 日韩不卡高清视频| 亚洲精品卡2卡3卡4卡5卡区| 原味小视频在线www国产| 亚洲国模精品一区| 亚洲国产欧美目韩成人综合| 精品国产中文一级毛片在线看| 日韩精品毛片| 亚洲视频色图| 亚洲欧美成aⅴ人在线观看| 国产又黄又硬又粗| 亚洲精品黄| 999国产精品| 国产亚洲视频免费播放| 亚洲天堂777| 国产成人精品男人的天堂 | 亚洲精品在线影院| 国产欧美精品午夜在线播放| 久久这里只有精品8| 国产成人午夜福利免费无码r| 日本欧美视频在线观看| 日韩一区二区在线电影| 国产精品久久精品| 国产精品久久久久婷婷五月| 国产又大又粗又猛又爽的视频| 老司国产精品视频91| 91久久夜色精品国产网站| 三上悠亚精品二区在线观看| 国产69精品久久久久妇女| 97视频精品全国在线观看| 亚洲Aⅴ无码专区在线观看q| 国产精品白浆无码流出在线看| 69精品在线观看| 热伊人99re久久精品最新地| 国产肉感大码AV无码| 欧美亚洲一区二区三区导航 | 特级毛片免费视频| 色综合五月| 亚洲欧美一区二区三区图片| 免费不卡视频| 91娇喘视频| 日韩欧美综合在线制服| 国产凹凸视频在线观看| 99精品国产自在现线观看| 精品福利网| 亚洲天堂视频在线观看| 国产毛片高清一级国语 | 在线视频一区二区三区不卡| 在线va视频| AV不卡无码免费一区二区三区| 亚洲第一黄色网| 日韩在线播放中文字幕| 人妻丰满熟妇αv无码| 国产毛片片精品天天看视频| 免费一级毛片在线播放傲雪网| 制服丝袜亚洲| 亚洲欧美精品日韩欧美| 91久久偷偷做嫩草影院精品|