中文 英语
18lk新利
的意见

你是否放弃了你的表现?这里有一个确定的方法来找出答案

随着系统复杂性的增长,正确配置软件堆栈的难度也在增加。

受欢迎程度

计算平台总是渴望获得更高的性能。这是我们根本无法逃避的事实。无论您的目标是高性能计算、物联网、移动还是汽车市场,都需要为特定的工作负载解锁最佳性能。这种对性能的不懈追求带来了一个不受欢迎的副作用:系统复杂性。随着硬件变得越来越强大,它所运行的软件数量也在以更快的速度增长——占用了宝贵的计算资源。考虑一下:我们现在讨论的是软件“堆栈”——一层又一层位于硬件之上的软件:您有操作系统、服务器、管理程序、编译器、数据库,当然还有您的终端应用程序,这里仅举几个例子。这些软件堆栈正变得无处不在,您可以在诸如嵌入式世界这样的新地方找到它们。请看下面Deloitte Insights所描述的汽车软件堆栈的例子。

软件当然可以配置。然而,这是一把双刃剑:配置得当,你就能优化花在硬件和软件上的资金;如果做错了,你就有可能不得不面对那些不满意的客户,他们希望得到更好的表现。雪上加霜的是,随着系统复杂性的增加,正确配置软件堆栈的难度也在增加。不久以前,当你的系统只有十几个参数可以切换时,你可以手动配置你的软件……但现在,情况完全不同了。该软件堆栈的每一层都可以有数百个(如果不是数千个)单独的旋钮供您进行实验。改变这些参数中的每一个或它们的组合可能会对系统的性能产生巨大影响。因此,风险很高。对于如此大得令人难以置信的解决方案空间(在某些情况下,可能的组合比已知宇宙中的原子数量还要多!),如何确保您提出的配置是能够释放系统最佳性能的配置?你怎么知道你没有留下任何表演机会?

对这个问题的强制回答是:尝试每一个参数的排列,以得出每一个可能的系统配置,通过代表目标工作负载的基准测试运行系统,并测量性能指标(例如运行时间、功率、内存使用)。在本实验结束时,您将知道哪种配置将产生最佳性能。容易,对吧?除了一个问题——时间。尽管这种方法万无一失,但它就是不实际。请记住:解决方案空间非常大,运行所有选项将花费几乎无限长的时间。

经验丰富的性能工程师会认为,您不需要通过基准测试运行每一个可能的配置,而且专家会知道为了积极地影响系统性能,应该使用哪些按钮。这是有一定道理的,然而,即使是最有才华的专家,问题仍然存在:您如何确定您选择的配置是最好的?

我们甚至还没有解决手动运行性能优化实验所需要的努力。任何做过基准测试和优化工作的人都可以证明这是一项艰巨的任务,通常需要几周(如果不是几个月的话)不断地“照看脚本”。

现在你可能会问:为什么我们不能把这个过程自动化呢?你是对的,因为这肯定会让整个过程更容易接受。但是流程自动化本身并不能真正帮助减少识别最佳配置所需的时间。我们还需要智能算法,能够在实验过程中明智地选择样本点,并帮助快速缩小解决方案空间。

幸运的是,我们今天确实可以使用这种技术。Synopsys SLM Optimizer软件是一种利用机器学习和人工智能为性能优化提供自动化方法的解决方案。该工具使您能够探索可能配置的解决方案空间,并找到哪种设置和配置参数组合将提供最佳性能。安装并运行此软件所需的工作量非常小:定义您想要调优的旋钮,指定如何调用工作负载,以及在哪里读取您正在跟踪的度量。运行工具,然后坐下来,看着它工作。优化器的算法将选择哪些配置进行测试和实验,同时将得出最佳系统配置所需的样本点数量降至最低。事实上,算法在这种类型的任务中非常出色,您经常可以在几个样本点之后看到性能的改进。这种效率意味着整个实验可能只需要几个小时(当然取决于您的工作量),而在过去,工程师可能需要几天甚至几周才能完成相同的分析。

最重要的是,Optimizer对它试图优化的系统是不可知的。这意味着您可以以许多不同的方式释放技术。例如,Optimizer可以用于编译器标志挖掘,当您试图找到哪个标志组合可以从您选择的编译器中获得比简单地使用-O3优化标志更好的性能时。或者您可以使用Optimizer来改进您的基础设施—针对特定的工作负载优化服务器配置,以提取未要求的性能,这在大多数情况下直接转化为显著的节省。

简而言之,您可以优化几乎任何可以配置的系统,并使用Optimizer轻松快速地进行试验,最终找出将最大化系统性能的配置—毫无疑问,您确实在以最佳设置运行计算资源。从你的芯片、系统和软件中获得最大价值。

在以后的博客中,我们将深入研究一个特定的用例,并亲自使用Optimizer来找出优化性能的真正方法。

同时,你可以在这里找到更多关于Synopsys SLM Optimizer的信息:https://www.synopsys.com/solutions/silicon-lifecycle-management/optimizer.html



留下回复


(注:此名称将公开显示)

Baidu