04:35:00 在本节中,Adobe Nikhil Calro 的高级软件工程师讨论了针对视频和音频工作流程的高性能机器学习所涉及的独特挑战。这些挑战包括资源限制、数据强度和计算量大的要求。为解决这些问题,Adobe 使用技术和管道的组合来加速工作流,包括 ONNX 运行时以支持 Windows 中的机器学习工作流和 Direct ML 执行提供程序以在 Windows 平台上加速 GPU。 Calro 还指出,Adobe 的机器学习工作流程旨在让创作者能够将更多时间花在创作过程上,减少花在冗余和重复性任务上的时间。
04:45:00 在本节中,演讲者讨论了 ORT 和 Direct ML 执行提供商提供的性能支持如何使使用现代高端 GPU 在 GPU 渲染期间启用基于机器学习的工作流成为可能。他们计划将他们的流水线转换为看起来更像右边的流水线,最大限度地减少到 CPU 的传输,并尽可能多地将内容保留在 GPU 或 GPU 可寻址硬件上。随着他们的更多 GPU 计算过渡到 DX12,这将变得更加容易,从而在他们的 OP 中消除与 OpenCL 和 CUDA 相关的开销到 DX12。
04:50:00 在本节中,Topaz Labs 的软件开发人员 Alexander Zang 讨论了在台式机和笔记本电脑上部署图像模型的挑战。他解释说,这种部署的关键部分是适应现有的工作流程,无需手动配置即可获得预期的性能,并提供高质量的图像模型。 Alexander 解释说,与服务器部署不同,桌面部署缺乏对系统的控制,尤其是来自不同供应商的不同 GPU 具有不同级别的内存和响应能力限制。他对此的解决方案是依靠 ONNX 提供的每个硬件供应商的不同推理库。这种方法允许 Topaz Labs 创建模型架构,供不同的推理库使用,同时节省手动工作。
05:15:00 在本节中,演讲者讨论了处理需要不同模型、实现和时序要求的各种设备架构所面临的挑战。他举了一个例子,说明为手机中的深度传感器和摄像头构建的相同算法和技术现在如何用于安全智能门铃和汽车内外监控摄像头。然后,他强调了可扩展性的重要性,并使用运行 Inception V3 模型的示例比较了 CPU、GPU 和 AI 加速器上处理机器算法之间的差异,其中在 AI 加速器上运行该模型每秒可以提供多达一千次推理,释放 CPU 用于其他有用的任务。
05:20:00 在本节中,高通公司的一位代表解释了他们如何将人工智能 (AI) 加速器集成到他们的硬件中以提高性能和可扩展性。通过使用专门构建的 AI 加速器,他们可以处理 AI 工作负载,而不会消耗额外的能源或降低通常因使用 CPU 或 GPU 而导致的速度变慢。此外,他们的 ONNX 交换格式使他们能够跨不同设备和垂直领域编译和执行机器学习模型,从而为公司节省时间并提高可移植性。他们还创建了一个统一的软件堆栈和库,支持各种操作系统并隐藏硬件细节,使客户更容易使用他们的硬件。
Onnx-mlir 是 ONNX 模型的编译器,它使用 MLIR 和 LLVM 进行优化和代码生成,支持 CPU 和自定义加速器。来自 IBM Research 的 Dong Lin 强调了全面测试的重要性,并强调了该框架在在线评分服务和模型服务框架中的使用。 Onnx-mlir 具有多种 CPU 和加速器方言,并在不同级别进行了优化,并已证明使用 IBM 加速器可将信用卡欺诈检测模型加速 11 倍。该项目欢迎社区做出贡献,以优化重要的运算符并支持利基 ML 运算符和 GPU 等其他加速器。
00:00:00 在本节中,来自 IBM Research 的 Dong Lin 讨论了 ONNX-MLIR,这是一种用于 ONNX 模型的编译器,它使用 MLIR 和 LLVM 进行高级优化和低级代码生成。该编译器旨在为 MLIR 中的 ONNX 方言提供参考,并使优化不仅方便 CPU,也方便自定义加速器。它很容易与其他基于 MLIR 的编译器集成,并且它支持不同的编程语言,例如 Python、C++ 和 Java。 Dong Lin 还强调了仔细测试编译器的重要性,他提到它已用于在线评分服务和模型服务框架,并且新引入了对自定义加速器的支持。
00:05:00 在本节中,演讲者讨论了 ONNX-MLIR 编译器,它可以优化和支持新的加速器。编译器针对 CPU 和加速器具有多种方言,并在各个级别进行了优化。演讲者展示了该框架使用 IBM 加速器将信用卡欺诈检测模型加速 11 倍的能力,但无法透露更多细节。他们强调了他们对社区贡献以发展开源项目的兴趣,因为他们旨在优化重要的运算符,支持利基机器学习运算符和其他加速器(如 GPU)。
00:05:00 在视频的这一部分,演讲者讨论了减少内核范围开销对于在 CUDA 上执行计算图时加快计算速度的重要性。他们建议将逐元素运算符融合到单个融合组运算符中以减小内核范围,但要注意并非所有运算符都能成功融合在一起。有必要在梯度融合组之前检查算子是否可以广播。演讲者还强调了形状推断和图形简化对于优化神经网络模型的重要性。最后,他们解决了模型是否包含不必要的运算符的问题,并回应说一些优化对于更快的计算是必要的。
00:15:00 在本节中,Xamarin 团队讨论了它维护的组件,这些组件曾经是一个主要焦点,但现在正在缩小到对支持最关键的部分。如果用户在过渡到 .NET 6 期间依赖于这些组件,该团队鼓励他们联系他们。他们还讨论了 Maui Hello World 教程和 .NET Maui 源代码剖析博客系列。此外,突出显示了 Andreas 关于 Z Index 和 UI 自定义的博客,展示了使用 Z Index 将元素堆叠在一起。
00:20:00 在本节中,演示者展示了人们使用 .NET MAUI 重新创建的一些博客文章和设计。这些博客包括在 Xamarin Forms 中重新创建登机牌设计,讨论使用 Xamarin Forms 进行状态机开发,组织您的 .NET MAUI 启动文件,深入研究处理程序的体系结构,以及一个关于 Xamarin Forms 到 JavaScript 双向通信的博客一个 WebView 。这些演示文稿展示了如今对设计的关注程度,使 Xamarin Forms/MAUI 更具可扩展性和实用性,以及如何更有效地使用 JavaScript 和绑定。
00:55:00 在本节中,主持人讨论了 Mike Parker 的可用性并介绍了 Al Blount,他可以为需要 Xamarin Forms 和 .NET Maui 帮助的公司提供支持。他们还简要讨论了 Mike 的团队目前在升级到 Maui 方面的工作,但还不能分享任何细节。主持人结束视频感谢观众的加入,并宣布即将举行 .NET 20 周年生日派对。
00:20:00 在本节中,演讲者讨论了他们将 TensorFlow 转换为 ONNX 的经验,并提到他们没有遇到太多转换问题。他们还讨论了在 C++ 中操作张量时的调试和故障排除,并提到了使用其他库(如 extensor 或 Python)来执行此操作。他们介绍了 ONNX 的入口点 onx.ai,它允许用户选择他们想要的架构和编程语言,并演示了 ONNXRuntime 在 C++ 中的使用。他们提到 GPU 的代码是相同的,唯一的区别是库链接。
00:25:00 在本节中,演示者展示了使用 ONNXRuntime 在模型上加载、检查和运行推理的演示。他首先为底层 API 创建一个环境,其中包含自定义日志或线程等可选功能。然后,他创建一个会话,表示要在特定模型上运行的推理,该模型可以从路径或字节流加载。他演示了如何使用分配器检查模型的信息,例如输入和输出的数量和名称。他指出,这个演示展示了原始库,在现实生活中,将使用包装器来避免管理字符串和其他复杂性。
00:30:00 在本节中,演讲者讨论了一个简单的线性回归模型,以及如何在不使用名为 CreateTensor 的外部 API 复制数据的情况下将输入传递到网络。演讲者强调了在文档不清楚时转到 c++ api 下面的 c api 的重要性。此外,他们还讨论了运行推理会话时可用的各种选项,包括部分输出检索和自定义输出名称。最后,他们注意到输出值存储在一个向量中,并且与之前分配的张量相同。
00:35:00 在本节中,演讲者讨论了使用函数获取张量可变数据在 C++ 中访问数据,以及由于类型擦除而需要指定所使用的类型。提供的示例显示了如何使用此方法将值打印到标准输出。演讲者还提到需要小心分配张量和输出缓冲区以及如何使用预分配的输出缓冲区。然后讨论转向使用 GPU 执行提供程序运行线性模型,使用 Microsoft ML ONNXRuntime GPU 包作为针对 CPU 运行 ONNXRuntime 的默认选择。最后,演讲者简要介绍了视觉网络的两个演示项目:一个名为 ResNet 的分类器和一个名为 MobileNet 的检测器。演示代码与前面的示例类似,演讲者重点介绍了这些网络中涉及的预处理和后处理。
视频“使用 ONNX Runtime 和 Hugging Face 加速机器学习”讨论了 Hugging Face 的 Optimum 库的创建,该库侧重于通过轻松应用 ONNX 运行时来加速 Transformer 模型从训练到推理的过程。该库简化了转换器库和硬件加速之间的桥梁,为生产性能创建了一个易于使用的工具包。通过应用 ONNX Runtime 提供的优化,用户可以受益于所有硬件加速,从而加快推理管道。 Hugging Face 社区内的协作正在使用这些加速推理管道类实现序列到序列模型优化,一个端到端示例表明,使用 Optimum 库可以使吞吐量增加 44% 或延迟减少,同时保留原始模型精度的 99.6%。
00:00:00 在本节中,来自 Hugging Face 的 Jeff 讨论了该公司的目标,即通过易于访问的预训练模型和工具,让世界上每家公司都能使用 Transformer 模型的强大功能。他解释说,迁移学习和注意力是你所需要的一切纸改变了机器学习领域,在自然语言处理任务中实现了突破性的性能,并在机器学习的每一种模式中产生了最先进的结果。 Jeff 介绍了 Optimum 库,该库旨在通过轻松应用 ONNX 运行时来加速转换器模型,使工程师和软件开发人员更容易在生产中使用这些模型。
00:10:00 在本节中,演讲者讨论了使用 ONNX 运行时和 Hugging Face 的优化库优化机器学习模型。通过从 Auto Model for Task 切换到 RT Model for Task,用户可以轻松应用 ONNX Runtime 提供的优化并受益于所有硬件加速,从而加快推理管道。 Hugging Face 社区也在合作使用这些加速推理管道类来实现序列到序列模型优化。博客文章中概述的端到端示例表明,使用 Optimum 库可以使吞吐量增加 44% 或延迟减少,同时保持原始模型精度的 99.6%。
ONNX 社区日! 2022 年 6 月 24 日直播
本次活动将于 6 月 24 日星期五在全新的微软硅谷园区举行。
该活动将涵盖 ONNX 社区更新、合作伙伴和用户故事以及大量社区网络。
ONNX 社区日!
简要总结:
详细的时间线摘要:
ONNX 社区日! 2022 年 6 月 24 日直播
本次活动将于 6 月 24 日星期五在全新的微软硅谷园区举行。
该活动将涵盖 ONNX 社区更新、合作伙伴和用户故事以及大量社区网络。
ONNX 社区日!
简要总结:
详细的时间线摘要:
ONNX:过去、现在和未来 - Jim Spohrer,IBM 和 Prasanth Pulavarthi,Microsoft
ONNX:过去、现在和未来 - Jim Spohrer,IBM 和 Prasanth Pulavarthi,Microsoft
在“ONNX:过去、现在和未来”视频中,IBM 的 Jim Spohrer 和 Microsoft 的 Prasanth Pulavarthi 讨论了开源 AI 框架 ONNX 的发展和未来。他们强调了通过 ONNX 提供的交换格式标准化 AI 模型部署的重要性,从而实现跨不同深度学习框架的无缝优化。此外,他们还讨论了 ONNX 运行时与各种硬件加速器协同工作的能力的最新发展,并提供了开始使用 ONNX 的技巧和资源。演讲者回答观众关于 ONNX 的能力、商业部署和即将到来的认证计划的问题,同时敦促观众参与 ONNX 社区。
Onnx-mlir:用于 ONNX 模型的基于 MLIR 的编译器 - 最新状态
Onnx-mlir:用于 ONNX 模型的基于 MLIR 的编译器 - 最新状态
Onnx-mlir 是 ONNX 模型的编译器,它使用 MLIR 和 LLVM 进行优化和代码生成,支持 CPU 和自定义加速器。来自 IBM Research 的 Dong Lin 强调了全面测试的重要性,并强调了该框架在在线评分服务和模型服务框架中的使用。 Onnx-mlir 具有多种 CPU 和加速器方言,并在不同级别进行了优化,并已证明使用 IBM 加速器可将信用卡欺诈检测模型加速 11 倍。该项目欢迎社区做出贡献,以优化重要的运算符并支持利基 ML 运算符和 GPU 等其他加速器。
PFVM - 一种使用 ONNX 作为其中间表示的神经网络编译器
PFVM - 一种使用 ONNX 作为其中间表示的神经网络编译器
在此视频中,Preferred Networks 的 Zijian Xu 介绍了 PFVM,这是一种使用 ONNX 作为模块优化中间表示的神经网络编译器。他讨论了 PFVM 如何将导出的 ONNX 作为输入,对其进行优化,并使用第三方 API 在指定的后端执行模型。 Genji 描述了优化的重要性,包括与客户运营商一起扩展 ONNX、形状推断和图形简化。他还解决了当前 ONNX 编译器的局限性,包括在动态情况下需要更多支持,并建议实施更多推理功能。 Zijian Xu 强调了减少内核范围开销和内存使用以加快计算速度的重要性,并建议利用机器上可用的静态信息进行调度和整形推理。
YVR18-332 TVM 编译器堆栈和 ONNX 支持
YVR18-332 TVM 编译器堆栈和 ONNX 支持
YVR18-332 视频讨论了 TVM 编译器堆栈,这是一个社区主导的深度学习堆栈,支持一系列硬件和前端,包括 ONNX。演讲者讨论了 TVM 如何在立体声级别优化模型,使开发人员能够探索搜索空间并找到最佳配置。他们还讨论了 TVM 提供的自动优化,包括循环转换和 GPU 加速。演讲者谈到了 TVM 路线图,其中包括启用 8 位支持和图形级别的自动调整。此外,他们还讨论了 ONNX TV 接口以及为所有生态系统统一标准接口的必要性。最后,视频暂停吃午饭。
旨在探索搜索空间并找到最佳配置。
.NET MAUI Community Standup - ONNX Runtime with Mike Parker
.NET MAUI Community Standup - ONNX Runtime with Mike Parker
在此视频中,特邀发言人 Mike Parker 介绍了 ONNX 运行时,这是一种开源跨平台工具,可跨多个硬件平台实现机器学习优化和加速。 Parker 解释了使用 ONNX 运行时的重要性,并展示了如何在 .NET MAUI 项目中使用它来使用 MobileNet 对象分类模型对图像进行分类。主持人和 Parker 讨论了在设备上运行机器学习模型的好处以及避免后端基础设施成本的能力。此外,该团队还共享有用的资源,包括 Parker 关于此主题的博客以及他们与 Al Blount 的合作伙伴关系以提供 .NET MAUI 和 Xamarin 支持。
[虚拟聚会] 可互操作的 AI:C++ 中的 ONNX 和 ONNXRuntime(M. Arena,M. Verasani)
[虚拟聚会] 可互操作的 AI:C++ 中的 ONNX 和 ONNXRuntime(M. Arena,M. Verasani)
该视频讨论了使用不同框架训练机器学习算法所面临的挑战,导致缺乏互操作性,并介绍了旨在为深度学习模型创建通用格式的 ONNX 和 ONNXRuntime。 ONNX 将神经网络转换为静态计算图,从而在推理过程中优化性能。 ONNXRuntime 允许将任何框架转换为 ONNX 格式,并提供可用于针对任何硬件平台的加速库。该视频展示了使用 ONNX 和 ONNXRuntime 的示例,并讨论了它们在 C++ 中的使用,并提供了更好地理解项目及其文档的建议。
Marco Arena 和 Matteo Verasani 还讨论了在 C++ 中使用 ONNX 和 ONNXRuntime 进行机器学习模型的好处,强调了框架的灵活性及其在不牺牲性能的情况下轻松转换来自不同框架的模型的能力。他们提供了将模型转换为 ONNX 格式的示例,并演示了将 ONNXRuntime 用于推理模式,展示了经典 Python 模型的性能改进。此外,他们还讨论了他们在嵌入式系统方面的工作以及在 GPU 上对 ONNXRuntime 进行基准测试的潜在好处。演讲者还提到了未来的虚拟聚会,并表示希望为与会者提供更多的交流机会。
[CppDay20] 可互操作的 AI:C++ 中的 ONNX 和 ONNXRuntime(M. Arena,M.Verasani)
[CppDay20] 可互操作的 AI:C++ 中的 ONNX 和 ONNXRuntime(M. Arena,M.Verasani)
机器学习和深度学习算法的使用越来越多,需要可以在不同平台上部署这些算法的工具。 ONNX 工具提供了不同框架和平台之间的互操作性,允许开发人员将他们的算法从一个框架转换到另一个框架并将它们部署在不同的设备上,即使他们不熟悉特定的框架或平台。 ONNX Runtime 是一种推理引擎,可以在推理阶段利用自定义加速器来加速模型,并且可以针对各种硬件平台。演讲者演示了 ONNX 和 ONNX Runtime 在 C++ 编程中的使用,并举例说明了线性回归和神经网络模型。他们还讨论了使用 ONNX 和 ONNX Runtime 在微调网络执行、优化加载时间和执行顺序图像方面的好处。
使用 ONNX Runtime 和 Hugging Face 加速机器学习
使用 ONNX Runtime 和 Hugging Face 加速机器学习
视频“使用 ONNX Runtime 和 Hugging Face 加速机器学习”讨论了 Hugging Face 的 Optimum 库的创建,该库侧重于通过轻松应用 ONNX 运行时来加速 Transformer 模型从训练到推理的过程。该库简化了转换器库和硬件加速之间的桥梁,为生产性能创建了一个易于使用的工具包。通过应用 ONNX Runtime 提供的优化,用户可以受益于所有硬件加速,从而加快推理管道。 Hugging Face 社区内的协作正在使用这些加速推理管道类实现序列到序列模型优化,一个端到端示例表明,使用 Optimum 库可以使吞吐量增加 44% 或延迟减少,同时保留原始模型精度的 99.6%。