人工智能

应用机器学习和深度学习

风格转换与多gpu云计算

以下文章来自尼古拉斯Ide, MathWorks的产品经理。
下周我们将前往达拉斯参加SC22超级计算会议。预计将有数千人参加今年的超级计算大会;标志着面对面会议的大规模回归。如果你是这些人中的一员,过来打个招呼吧!MathWorks将代表人工智能、高性能计算和云计算。
在会议上,我们将用免费的食物吸引人们到我们的展位;包括魔方、贴纸和现场演示。下面我将向您介绍我们将展示的演示之一。新的演示是一个更新的样式转换演示,在云端运行,将AI应用于网络摄像头捕获的图像,使用GPU加速底层计算密集型算法,并利用多个GPU来提高处理结果的帧率。
如果你曾经想知道如何使用多个gpu来加快工作流程,你应该来看看。我们将向您展示如何使用类似parfeval的并行结构来为独立任务利用更多的CPU和GPU资源。
带有风格转移的样式图像

什么是风格迁移?

通过样式迁移,您可以将一个图像的样式外观应用到第二个图像的场景内容。要了解更多关于样式转换的知识,请阅读文档示例使用深度学习的神经风格迁移
基于深度学习的图像风格迁移
图:基于深度学习的风格迁移
现在,有些人可能会说风格转换并不新鲜,这是事实。事实上,我们在几年前展示了一个风格转换的演示。在这篇博客文章中阅读更多关于我们的原始演示:MATLAB演示在GTC:风格转移和名人的外观
新颖之处在于,通过使用更多硬件和相同的核心代码来加速计算成本高昂的演示;将通常只有每秒几帧的算法加速到速度为4倍的流媒体算法。事实上,我们的演示使用了云端的高端多gpu实例,每秒可以处理15帧。

连接云机器

要运行样式转换演示,我们使用AWS连接到云Windows机器MathWorks云中心
如果您拥有MathWorks帐户、MATLAB许可证和AWS帐户,则可以利用MathWorks Cloud Center按需访问云中的Windows或Linux实例,其硬件远远超过您现在桌面上的硬件。第一次设置非常简单,重新启动实例也非常简单。最好的部分是,您对环境所做的所有更改都在重新启动之间保持不变。一次性的初始设置很快就会在重用中获得回报。
AWS云上的Windows机器
图:云上的Windows机器
如果您不熟悉使用MATLAB在AWS上创建、管理和访问计算机,请参阅的文档开始使用云中心而且在AWS上使用Cloud Center启动MATLAB

GPU-Accelerated计算

我们使用程序设计师轻松构建一个专业外观的应用程序,它提供了一个集成的环境来加载帧,使用深度学习执行风格转换,利用一个或多个gpu,并显示结果。
应用程序的关键方面和控制(从底部开始)是:
  • 样式输出FPS-帧率(帧/秒)的样式输出图像
  • 风格网络预测时间重设一个输入帧的样式平均需要多长时间
  • 风格网络预测率-每秒需要处理的帧数。当使用单个GPU时,应用程序应该能够以大约1/的速率处理t,在那里t是风格网络的预测时间。
  • NumWorkers-我们池中并行工作的数量。每个worker可以使用一个GPU。我们在这个云实例上有4个gpu,所以我们选择了4个工作人员。使用4个gpu,我们每秒可以处理4倍的帧数。
风格转换应用程序的用户界面
图:风格转换应用程序的用户界面
我们利用MATLAB和并行计算工具箱的特性来加速计算密集型AI算法的执行:
  • 线程池在一个MATLAB进程中创建多个工作者,以更有效地在工作者之间共享数据。
  • parfeval将帧排队,以便在多个gpu上进行并行处理。
  • afterEach将完整的帧数据从队列移动到应用程序的显示缓冲区。
  • parallel.pool.Constant有效地管理线程工作者网络的构建和更新。
当我们在具有多个GPU的机器上运行并使用线程工作者池来执行parfeval队列时,池中的每个线程都以循环方式分配一个GPU。也就是说,工作均匀地分布在所有可用的资源中。
在下面的截图中,您可以观察到我们机器的4个gpu之间的工作分布,以及在增加所需帧率时gpu的性能。我们首先将保守的帧率设置为3帧/秒(基于0.27秒处理)。然后,我们将速率提高到6帧/秒,这足以频繁地使用2个gpu。最后,我们将帧率设置为15帧/秒,以查看我们可以将硬件推向多远,并使用所有4个gpu。
请注意,根据最后的观察,以及不同屏幕截图对GPU的相对利用率,我们很可能只用一个GPU就能实现接近每秒4帧的速度。
随着帧率的增加,样式转移
图:当期望的帧速率从3帧/秒增加到6帧/秒,最后增加到16帧/秒时,观察4个gpu之间的工作分布(右侧图表)和样式输出FPS (UI中底部数字)。

结论

如果你要来SC22,在我们的展位前停下来打个招呼,看看演示。如果你不能参加,请留下任何你想谈论的与超级计算有关的话题。
|
  • 打印
  • 发送电子邮件

댓글

댓글을남기려면링크를클릭하여MathWorks계정에로그하거나계정을새로만드십시오。