人工智能

应用机器学习和深入学习

风格与多个gpu转移和云计算

下面的文章尼古拉斯Ide在MathWorks产品经理。
我们前往SC22超级计算会议下周在达拉斯。成千上万的人将参加今年的超级计算事件;标志着大规模重返面对面的会议。如果你是这些人中的一员,停止说你好!MathWorks将代表人工智能、高性能计算和云计算。
在会议上,我们将会吸引人们去我们的展位与自由好吃;包括立方体魔方、贴纸、和现场演示。下面我将带您亲历的一个演示,我们将显示。新的演示是一个更新的风格传输演示在云上运行,人工智能应用于图像捕捉到一个网络摄像头,利用GPU加速底层计算密集型算法,并利用多个GPU处理结果的帧速率增加。
如果你想知道如何使用多个gpu加速工作流,你应该停止了。我们将向你展示如何使用平行结构像parfeval利用更多的CPU和GPU资源独立任务。
风格的形象与风格转移

风格转移是什么?

风格转移,您可以应用文体的一个图像的场景内容的第二个图片。了解更多关于风格转让、阅读文档的例子使用深度学习神经风格转移
图像与深度学习风格转移
图:风格与深度学习转移
现在,有些人可能会认为,风格转移并不新鲜,这是真的。事实上,我们提出了一个风格传输演示几年前。阅读更多关于这个博客中原来的演示:MATLAB演示GTC:风格转移和名人疯
什么是新的,加速度计算昂贵的演示的是利用更多的硬件相同的核心代码;加速算法,通常只是几帧每秒,变成一个stream-able算法速度的4倍。事实上,我们的演示,在云中使用高端multi-GPU实例,可以处理15帧每秒。

连接到云机

运行方式传输演示,我们连接到云在AWS使用Windows机器MathWorks云中心
如果你有一个MathWorks帐户,MATLAB的许可,和一个AWS帐户,您可以利用MathWorks云中心得到云中的按需访问Windows或Linux实例与硬件远远超过你现在可能已经在桌面上。第一次设置很简单,重新启动您的实例是一个微风。最好的部分是,你做出的所有更改环境持续重启之间。初始设置罢工支付股息的一次性努力重用。
Windows机器AWS云
图:Windows机器上的云
如果您是创建、管理和访问的机器与MATLAB的AWS,看到的文档开始使用云计算中心从MATLAB在AWS云中心使用

GPU-Accelerated计算

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

结论

如果你来到SC22,停止我们的展位打招呼,查看演示。如果你不能参加,留下你的评论与任何你想聊天与超级计算机。
|
  • 打印
  • 发送电子邮件

评论

留下你的评论,请点击在这里MathWorks账户登录或创建一个新的。