NVIDIATensort和GPU软件栈帮助腾讯AILAB创造生动的虚拟人。

 行业动态     |      2022-05-23 11:26:24    |      沥拓

客户介绍及应用背景。

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

腾讯AILAB创造的虚拟人具有自然、生动、情感的表达方式,由腾讯AILAB开发的一套复杂系统支持。首先,系统应该从文本中提取不同的信息,包括表达、情感、重音位置和兴奋程度;之后,这些信息被输入到模型中生成,然后同步生成语音、口型和表达参数,最后虚拟人自然生动地表达出来。

客户挑战

根据虚拟人物需要表达的语言和情感,创造一个自然生动的人脸是创造虚拟人的重要阶段。首先需要渲染人脸的纹理图和渲染图,然后输入到深度学习模型中,最后生成一个自然生动的人脸。在这个过程中,需要使用OpenGL、OpenCV、CUDA、Tensorflow等软件技术。腾讯原有的方案有很多CPU和GPU的数据交互,很多计算操作都是通过CPU实现的,效率很低。

OpenGL在GPU上渲染图像并绘制framebufer后,需要使用glreadpixels将数据复制到CPU,然后使用cudamecpy将数据从CPU复制到GPU进行深度学习模型的推理。这里有两个不必要的CPU和GPU之间的数据传输。CPU上完成了色空间转换、深度学习推理前后处理等操作,效率很低。

应用方案

NVIDIA技术渲染和推理阶段,NVIDIA技术提供了强大的支持。在渲染阶段,NVIDIA帮助提高色空间转换效率,减少整体延迟,主要体现在:

使用NVIDIACUDA/Openglinteroperabity来代替腾讯之前使用glreadPixels在CUDA和Opengl之间复制数据的方案,大大降低了CPU和GPU之间的数据复制,从而降低了整体的延迟。利用GPU的并行优势,将原本在CPU上进行的色空间转换操作迁移到NVIDIAT4GPU上,利用GPU的并行优势,大大提高了色空间转换的效率,进一步降低了整体的延迟。将多帧mess形成一个batch,以提高整个framebufer的利用率。

在推理阶段,NVIDIA有助于提高推理的整体吞吐量,减少推理延迟,主要体现在以下几点:用NVIDIATensorrrt替换Tensorflow来加速模型推理,在最终视觉效果几乎不变的情况下,使用NVIDIATI4GPU上的FP16Tensorcore可以大大提高矩阵乘法等操作速度。

用nvidiatensorrt替换tensorflow来加速模型推理,使用nvidia4gpu上的FP16tensorcore可以大大提高矩阵乘法等操作速度的特性特性。在最终视觉效果几乎不变的情况下,进一步提高推理的吞吐量,减少推理的延迟。在nvidiat4gpu上,cudakernel使用cudakernel替换原始流程,在CPU上使用OpenCV实现mat-tensor和tensor-to-mat等格式转换操作,并使用Opencv-cudernel替换Opencu版本的部分操作(如ressize等),充分发挥GPU相对于CPU更高的并发优势,减少GPU到CPU的数据传输通信量,在加速这些操作的同时,减少GPU到CPU的数据传输通信量,GPU和CPU上的操作是通过Pipeline进行的,结合NVIDIA的MPS技术,在处理多个数据流的同时,提高单卡上的多个流程,提高整体吞吐量。

使用效果及影响。

在虚拟人类项目中,NVIDIACUDA技术大大提高了渲染速度,NVIDIATensort方便快速加速深度学习模型的推理。结合MPS技术,实现了单卡多路推流,使整体推理效率达到原来的三倍!性能的显著提高不仅提高了GPU的利用率,还降低了AI技术的使用成本。