NVIDIA加速虚拟人项目渲染与推理效率

描述

腾讯AI LAB致力于打造产学研用一体的 AI 生态,主要的研究方向包括计算机视觉、语音识别、自然语言处理和机器学习,结合腾讯场景与业务优势,在社交AI、游戏AI、内容AI及平台AI等领域取得了显著的成果,技术被应用于微信、QQ、天天快报和QQ音乐等上百个腾讯产品。其中围棋AI “绝艺” 多次获得世界人工智能围棋大赛的冠军。

腾讯AI LAB打造的虚拟人,具有自然、生动且饱含情绪的表情,其背后由一套腾讯 AI LAB 自研的复杂系统支撑,系统首先要从文本中提取不同信息,包括表情、情感、重音位置、和激动程度等;提取之后,这些信息被输入到模型中生成,再同步生成语音、口型和表情参数,最终才有了虚拟人自然生动的表现。

虚拟人物打造需要更高效平台

根据虚拟人物需要表达的语言和情感,生成自然生动的人脸,是打造虚拟人重要的一个阶段。需要先渲染人脸的纹理图和渲染图,并将它们输入到深度学习模型中,最终生成自然生动的人脸。在这个过程中,需要用到OpenGL、OpenCV、CUDA、TensorFlow等软件技术,腾讯原有的方案有很多CPU与GPU的数据交互,且有很多计算型的操作通过CPU来实现,效率非常低下, 无论是吞吐还是延时都不满足要求,具体体现在:

OpenGL在GPU上渲染好图像绘制到framebuffer后,需要先用glReadPixels拷贝数据到CPU,再用cudaMemcpy将数据从CPU拷回到GPU以进行深度学习模型的推理,这里有两次不必要的CPU与GPU之间的数据传输。

颜色空间转换方面,深度学习推理的前后处理等操作在CPU上完成,效率非常低下。

NVIDIA 加速虚拟人项目渲染与推理效率

NVIDIA 技术在虚拟人项目的渲染和推理阶段均提供了强大的支持。在渲染阶段,NVIDIA 助力提升了颜色空间转换效率,降低整体延时,主要体现在:

1. 用NVIDIA CUDA/OpenGL interoperability 代替腾讯之前使用glReadPixels在CUDA和OpenGL之间拷贝数据的方案,大幅减少了CPU和GPU之间的数据拷贝,从而降低了整体的延时。

2. 把原来在CPU上做的颜色空间转换的操作,迁移到NVIDIA T4 GPU上用CUDA kernel实现,利用GPU的并行优势,大大提高了颜色空间转换的效率,进一步降低了整体的延时。

3. 将多帧的mesh组成一个batch分别绘制到framebuffer的不同区域,在提高OpenGL并行度的同时,给下一阶段的深度学习模型的推理提供了更大的输入数据的batch size,充分发挥NVIDIA T4 GPU高并发计算的优势,进一步提高GPU的利用率,从而提高整体的吞吐。

在推理阶段,NVIDIA助力提高推理整体吞吐,降低推理延时,主要体现在以下几点:

1. 用NVIDIA TensorRT替换TensorFlow对模型推理进行加速,并利用NVIDIA T4 GPU上的FP16 Tensor Core可以极大提高矩阵乘等操作速度的特性,在最终视觉效果几乎不变的情况下,进一步提升推理的吞吐,降低推理延时。

2. 在NVIDIA T4 GPU上利用CUDA kernel 替代原始流程中在CPU上使用OpenCV实现 Mat-to-Tensor 和 Tensor-to-Mat 等格式转换操作,并使用OpenCV-CUDA版替换OpenCV-CPU版的部分操作(如Resize等),充分发挥GPU相对于CPU更高的并发优势,在加速这些操作的同时减少GPU到CPU的数据传输通信量,提高格式转换效率,降低端到端的推理延时。

3. 通过Pipeline的方式,使GPU和CPU上的操作进行overlap,并结合NVIDIA的MPS技术提高单卡上多个进程同时处理多个数据流的同时提高整体的吞吐。

在虚拟人项目中,NVIDIA CUDA技术大幅提升了渲染速度,NVIDIA TensorRT 方便快速地加速深度学习模型的推理,结合MPS技术,实现了单卡多路推流,使整体推理效率达到了原来的三倍!性能的大幅提升,既提升了GPU的利用率,又降低了AI技术的使用成本。责任编辑:haq

腾讯AI LAB致力于打造产学研用一体的 AI 生态,主要的研究方向包括计算机视觉、语音识别、自然语言处理和机器学习,结合腾讯场景与业务优势,在社交AI、游戏AI、内容AI及平台AI等领域取得了显著的成果,技术被应用于微信、QQ、天天快报和QQ音乐等上百个腾讯产品。其中围棋AI “绝艺” 多次获得世界人工智能围棋大赛的冠军。   腾讯AI LAB打造的虚拟人,具有自然、生动且饱含情绪的表情,其背后由一套腾讯 AI LAB 自研的复杂系统支撑,系统首先要从文本中提取不同信息,包括表情、情感、重音位置、和激动程度等;提取之后,这些信息被输入到模型中生成,再同步生成语音、口型和表情参数,最终才有了虚拟人自然生动的表现。  

虚拟人物打造需要更高效平台

根据虚拟人物需要表达的语言和情感,生成自然生动的人脸,是打造虚拟人重要的一个阶段。需要先渲染人脸的纹理图和渲染图,并将它们输入到深度学习模型中,最终生成自然生动的人脸。在这个过程中,需要用到OpenGL、OpenCV、CUDA、TensorFlow等软件技术,腾讯原有的方案有很多CPU与GPU的数据交互,且有很多计算型的操作通过CPU来实现,效率非常低下, 无论是吞吐还是延时都不满足要求,具体体现在:  

OpenGL在GPU上渲染好图像绘制到framebuffer后,需要先用glReadPixels拷贝数据到CPU,再用cudaMemcpy将数据从CPU拷回到GPU以进行深度学习模型的推理,这里有两次不必要的CPU与GPU之间的数据传输。
 

颜色空间转换方面,深度学习推理的前后处理等操作在CPU上完成,效率非常低下。  

NVIDIA 加速虚拟人项目渲染与推理效率

NVIDIA 技术在虚拟人项目的渲染和推理阶段均提供了强大的支持。在渲染阶段,NVIDIA 助力提升了颜色空间转换效率,降低整体延时,主要体现在:   1. 用NVIDIA CUDA/OpenGL interoperability 代替腾讯之前使用glReadPixels在CUDA和OpenGL之间拷贝数据的方案,大幅减少了CPU和GPU之间的数据拷贝,从而降低了整体的延时。   2. 把原来在CPU上做的颜色空间转换的操作,迁移到NVIDIA T4 GPU上用CUDA kernel实现,利用GPU的并行优势,大大提高了颜色空间转换的效率,进一步降低了整体的延时。   3. 将多帧的mesh组成一个batch分别绘制到framebuffer的不同区域,在提高OpenGL并行度的同时,给下一阶段的深度学习模型的推理提供了更大的输入数据的batch size,充分发挥NVIDIA T4 GPU高并发计算的优势,进一步提高GPU的利用率,从而提高整体的吞吐。

在推理阶段,NVIDIA助力提高推理整体吞吐,降低推理延时,主要体现在以下几点: 
  1. 用NVIDIA TensorRT替换TensorFlow对模型推理进行加速,并利用NVIDIA T4 GPU上的FP16 Tensor Core可以极大提高矩阵乘等操作速度的特性,在最终视觉效果几乎不变的情况下,进一步提升推理的吞吐,降低推理延时。
  2. 在NVIDIA T4 GPU上利用CUDA kernel 替代原始流程中在CPU上使用OpenCV实现 Mat-to-Tensor 和 Tensor-to-Mat 等格式转换操作,并使用OpenCV-CUDA版替换OpenCV-CPU版的部分操作(如Resize等),充分发挥GPU相对于CPU更高的并发优势,在加速这些操作的同时减少GPU到CPU的数据传输通信量,提高格式转换效率,降低端到端的推理延时。
  3. 通过Pipeline的方式,使GPU和CPU上的操作进行overlap,并结合NVIDIA的MPS技术提高单卡上多个进程同时处理多个数据流的同时提高整体的吞吐。     在虚拟人项目中,NVIDIA CUDA技术大幅提升了渲染速度,NVIDIA TensorRT 方便快速地加速深度学习模型的推理,结合MPS技术,实现了单卡多路推流,使整体推理效率达到了原来的三倍!性能的大幅提升,既提升了GPU的利用率,又降低了AI技术的使用成本。 责任编辑:haq

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分