案例簡介
? 本案例中通過使用NVIDIA T4 GPU和TensorRT,OpenGL,CUDA, CUDA/OpenGL interoperability等GPU軟件技術(shù)棧,助力騰訊AI LAB虛擬人項目在人臉生成階段達(dá)到了超過3倍的加速。
? 本案例主要應(yīng)用到 NVIDIA T4 GPU,TensorRT, OpenGL,CUDA, CUDA/OpenGL interoperability等AI加速平臺。
客戶簡介及應(yīng)用背景
騰訊AI LAB致力于打造產(chǎn)學(xué)研用一體的 AI 生態(tài),主要的研究方向包括計算機(jī)視覺、語音識別、自然語言處理和機(jī)器學(xué)習(xí),結(jié)合騰訊場景與業(yè)務(wù)優(yōu)勢,在社交AI,游戲AI,內(nèi)容AI及平臺AI等領(lǐng)域取得了顯著的成果,技術(shù)被應(yīng)用于微信、QQ、天天快報和QQ音樂等上百個騰訊產(chǎn)品。其中圍棋AI “絕藝” 多次獲得世界人工智能圍棋大賽的冠軍。
騰訊AI LAB打造的虛擬人,具有自然,生動且飽含情緒的表情,其背后由一套騰訊 AI Lab 自研的復(fù)雜系統(tǒng)支撐,系統(tǒng)首先要從文本中提取不同信息,包括表情、情感、重音位置、和激動程度等;之后,這些信息被輸入到模型中生成,再同步生成語音、口型和表情參數(shù),最終才有了虛擬人自然生動的表現(xiàn)。
客戶挑戰(zhàn)
根據(jù)虛擬人物需要表達(dá)的語言和情感,生成自然生動的人臉,是打造虛擬人重要的一個階段。需要先渲染人臉的紋理圖和渲染圖,并將它們輸入到深度學(xué)習(xí)模型中,最終生成自然生動的人臉。在這個過程中,需要用到OpenGL、OpenCV、CUDA、TensorFlow等軟件技術(shù),騰訊原有的方案有很多CPU與GPU的數(shù)據(jù)交互,且有很多計算型的操作通過CPU來實現(xiàn),效率非常低下, 無論是吞吐還是延時都不滿足要求,具體體現(xiàn)在:
OpenGL在GPU上渲染好圖像繪制到framebuffer后,需要先用glReadPixels拷貝數(shù)據(jù)到CPU,再用cudaMemcpy將數(shù)據(jù)從CPU拷回到GPU以進(jìn)行深度學(xué)習(xí)模型的推理,這里有兩次不必要的CPU與GPU之間的數(shù)據(jù)傳輸。
顏色空間轉(zhuǎn)換,深度學(xué)習(xí)推理的前后處理等操作在CPU上完成,效率非常低下。
應(yīng)用方案
NVIDIA 技術(shù)在虛擬人項目的渲染和推理階段均提供了強(qiáng)大的支持。在渲染階段,NVIDIA 助力提升了顏色空間轉(zhuǎn)換效率,降低整體延時,主要體現(xiàn)在:
用NVIDIA CUDA/OpenGL interoperability 代替騰訊之前使用glReadPixels在CUDA和OpenGL之間拷貝數(shù)據(jù)的方案,大幅減少了CPU和GPU之間的數(shù)據(jù)拷貝,從而降低了整體的延時。
把原來在CPU上做的顏色空間轉(zhuǎn)換的操作,遷移到NVIDIA T4 GPU上用CUDA kernel實現(xiàn),利用GPU的并行優(yōu)勢,大大提高了顏色空間轉(zhuǎn)換的效率,進(jìn)一步降低了整體的延時。
將多幀的mesh組成一個batch分別繪制到framebuffer的不同區(qū)域,在提高OpenGL并行度的同時,給下一階段的深度學(xué)習(xí)模型的推理提供了更大的輸入數(shù)據(jù)的batch size,充分發(fā)揮NVIDIA T4 GPU高并發(fā)計算的優(yōu)勢,進(jìn)一步提高GPU的利用率,從而提高整體的吞吐。
在推理階段,NVIDIA助力提高推理整體吞吐,降低推理延時,主要體現(xiàn)在以下幾點:用NVIDIA TensorRT替換TensorFlow對模型推理進(jìn)行加速,并利用NVIDIA T4 GPU上的FP16 Tensor Core可以極大提高矩陣乘等操作速度的特性,在最終視覺效果幾乎不變的情況下,進(jìn)一步提升推理的吞吐,降低推理延時。
用NVIDIA TensorRT替換TensorFlow對模型推理進(jìn)行加速,并利用NVIDIA T4 GPU上的FP16 Tensor Core可以極大提高矩陣乘等操作速度的特性,在最終視覺效果幾乎不變的情況下,進(jìn)一步提升推理的吞吐,降低推理延時。
在NVIDIA T4 GPU上利用CUDA kernel 替代原始流程中在CPU上使用OpenCV實現(xiàn) Mat-to-Tensor 和 Tensor-to-Mat 等格式轉(zhuǎn)換操作,并使用OpenCV-CUDA版替換OpenCV-CPU版的部分操作(如Resize等),充分發(fā)揮GPU相對于CPU更高的并發(fā)優(yōu)勢,在加速這些操作的同時減少GPU到CPU的數(shù)據(jù)傳輸通信量,提高格式轉(zhuǎn)換效率,降低端到端的推理延時。
通過Pipeline的方式,使GPU和CPU上的操作進(jìn)行overlap,并結(jié)合NVIDIA的MPS技術(shù)提高單卡上多個進(jìn)程同時處理多個數(shù)據(jù)流的同時提高整體的吞吐。
使用效果及影響
在虛擬人項目中,NVIDIA CUDA技術(shù)大幅提升了渲染速度,NVIDIA TensorRT 方便快速地加速深度學(xué)習(xí)模型的推理,結(jié)合MPS技術(shù),實現(xiàn)了單卡多路推流,使整體推理效率達(dá)到了原來的三倍!性能的大幅提升,既提升了GPU的利用率,又降低了AI技術(shù)的使用成本。
審核編輯:郭婷
-
NVIDIA
+關(guān)注
關(guān)注
14文章
4855瀏覽量
102711 -
gpu
+關(guān)注
關(guān)注
28文章
4673瀏覽量
128592 -
AI
+關(guān)注
關(guān)注
87文章
29806瀏覽量
268103
發(fā)布評論請先 登錄
相關(guān)推薦
評論