AMD 处理器上的 .NET 性能
我们正在 .NET 4 中编写一个数据处理应用程序,最近尝试将我们的应用程序部署到 AMD 6174(12 核)处理器。历史上我们一直使用英特尔,一切都很好。该应用程序是高度并行的,我们在英特尔上获得了多线程性能提升。然而,在 AMD 上,确实没有像人们预期的那样线性性能增益。我怀疑有问题,因为 CPU 利用率没有达到最大。这听起来像是争用,但我不知道该去哪里寻找,因为这是一个非常特定于平台的问题。想法从哪里开始?
We are writing a data processing application in .NET 4 and recently tried to deploy our application to a AMD 6174 (12 core) processor. Historically we have used Intel and everything has been fine. The application is very parallel and we are getting multi-thread performance gains on Intel. However, on the AMD there really isn't a linear performance gain like one would expect. I am suspicious of a problem since the CPU utilization isn't maxed out. It smells like contention but I don't know where to look since this is a very platform specific issue. Ideas where to start?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
我假设它支持 OpenCL™ 因此您可能会找到 AMD APP Profiler 很有趣。
I'm assuming it supports OpenCL™ so you might find the AMD APP Profiler interesting.
系统性能取决于许多组件(CPU、L1、L2、L3 缓存大小、系统总线速度、内存速度)。在你的情况下,内存可能是一个瓶颈。
System performance depends on many components (CPU, L1, L2, L3 cache size, system bus speed, memory speed). In your case memory can be a bottle neck.
“然而,在 AMD 上,确实没有像人们预期的那样线性性能增益。”基于什么?我假设您有一系列可以运行的基准测试来测量计算任务的任务完成时间,正确吗?由于您已经部署在 intel 盒子上,您应该能够设置线程 cound 以匹配相同数量的处理器(AMD -> intel),如果您的数量大致相同,至少您可以开始制定测试计划用于添加/测试添加更多核心。
"However, on the AMD there really isn't a linear performance gain like one would expect." Based on what? I would assume that you have a series of benchmarks that you could run to measure the task completion time for a compute task correct? And since you have deployed on an intel box you should be able to set the thread cound to match the same number of processors (AMD -> intel) and if your numbers are about the same at least you can begin to formulate a testing plan for adding/testing the addition of more cores.