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