工作職責(zé):?1.?參與項目規(guī)劃和設(shè)計,提出技術(shù)解決方案,解決開發(fā)過程中的技術(shù)難題。
?2.CUDA程序開發(fā)、調(diào)試與優(yōu)化:編寫和優(yōu)化CUDA代碼,以實現(xiàn)算法在通用GPU上的高效執(zhí)行。包括使用CuBLAS、CuDNN等CUDA相關(guān)生態(tài)工具,以及對CUDA程序進(jìn)行性能調(diào)優(yōu),如進(jìn)一步并行化、流水線并行、訪存與計算重疊等確保程序性能滿足項目要求。
?3.?算法的CUDA實現(xiàn)與性能分析和提升:根據(jù)項目需求,實現(xiàn)各種算法的CUDA版本,如科學(xué)計算、神經(jīng)網(wǎng)絡(luò)、圖像處理等,并對其進(jìn)行性能優(yōu)化,持續(xù)提升算法執(zhí)行效率,以滿足特定的性能要求。
?4.?系統(tǒng)設(shè)計與集成:將不同平臺(CPU/FPGA等)上的算法遷移到通用GPU上進(jìn)行CUDA程序優(yōu)化和開發(fā),軟件架構(gòu)設(shè)計(包括各模塊接口設(shè)計、板間負(fù)載均衡等),實現(xiàn)高效的并行運行計算,應(yīng)用于實際的客戶系統(tǒng)中,如科學(xué)計算、視頻圖像處理、自動駕駛系統(tǒng)等。
?5.?技術(shù)支持與協(xié)作:與項目團(tuán)隊中的其他成員,如驅(qū)動工程師、算法工程師等緊密合作,共同完成產(chǎn)品開發(fā)適配,提供技術(shù)支持,解決開發(fā)過程中遇到的各種問題。
?6.?技術(shù)研究與創(chuàng)新:跟蹤最新的CUDA技術(shù)和行業(yè)趨勢,探索新的優(yōu)化方法和技術(shù),以提升程序性能和開發(fā)效率。
?7.?文檔撰寫與維護(hù):撰寫技術(shù)文檔,記錄開發(fā)過程和程序設(shè)計,以便于后續(xù)的維護(hù)和升級。?
???
?
???職位描述:?
???1.?教育背景:計算機科學(xué)、軟件工程或相關(guān)領(lǐng)域的本科及以上學(xué)歷。?
???2.?編程技能:熟練掌握C/C++等編程語言,具備良好的編程習(xí)慣和代碼優(yōu)化能力。?
???3.?并行計算知識:對并行計算原理有深入了解,熟悉通用GPU架構(gòu)和CUDA編程模型。?
???4.?工具使用:熟悉CUDA工具包、通用GPU及相關(guān)加速庫,如cuBLAS、cuDNN等。?
???5.?性能優(yōu)化:具備性能分析和優(yōu)化的經(jīng)驗,能夠針對通用GPU程序進(jìn)行性能調(diào)優(yōu)。?
???6.?團(tuán)隊合作:良好的溝通能力和團(tuán)隊合作精神,能夠在多學(xué)科團(tuán)隊中有效協(xié)作。?
???7.?相關(guān)開發(fā)遷移工作經(jīng)驗2年以上,優(yōu)秀者可適當(dāng)放寬。???
???
?
???加分項:?
???1.?項目經(jīng)驗:具有使用CUDA進(jìn)行實際項目開發(fā)的經(jīng)驗,尤其是在科學(xué)計算、深度學(xué)習(xí)、圖像處理等領(lǐng)域。?
???2.?算法實現(xiàn):能夠?qū)?fù)雜算法有效轉(zhuǎn)化為CUDA代碼,并進(jìn)行優(yōu)化以實現(xiàn)高性能計算。?
???3.?跨平臺開發(fā):具備OpenCL程序開發(fā)和優(yōu)化的實際經(jīng)驗,具備異構(gòu)跨平臺開發(fā)經(jīng)驗,了解不同GPU架構(gòu)的特性和優(yōu)化策略。?
???4.?研究背景:發(fā)表過相關(guān)領(lǐng)域的技術(shù)論文或持有技術(shù)專利者優(yōu)先。?
???5.?持續(xù)學(xué)習(xí):對新技術(shù)保持敏感,愿意不斷學(xué)習(xí)和掌握新的開發(fā)工具和方法。?
???
?
???具備完成高質(zhì)量通用GPU加速項目所需的其他技能和經(jīng)驗。