如何通过组合多个 CPU 内核来获得更快的单线程处理速度,例如在具有 64 个 CPU 内核的 Google Compute Engine n1-highmem-64 机器类型上训练自定义神经网络(不是 tensorflow)?集群计算机还是什么?不知道从哪里开始...谢谢!
问问题
49 次
1 回答
0
好吧,您要求在单个线程上实现更快的速度,但具有多个内核。
从单核拥有的单线程中获得更快处理速度的唯一可行方法是超频。您还可以通过获得更新的内核来获得更好的芯片组。
简单地完成这一点是不可行的,您可能必须将固件修补到您的几个组件上,以允许它们使用 L3 缓存或其他东西在单个线程上跨 CPU 进行通信......非常不可行。
与此相反的是要走的路。
多线程用于在多个内核上同时处理不同的数据。
通用 GPU 使用是通过将计算移植到 GPU 来对大量数据执行相同的操作。它增加了开销时间,但当输入足够大时会产生良好的结果。
有趣的是,您没有提到 TensorFlow,因为它实际上实现了这两者。
即使你能够实现这样的东西,它也可能只会在原子锁上颠簸,除非你无论如何都要线程化它。
编辑
如果您希望将软件作为服务使用,亚马逊(https://aws.amazon.com/tensorflow/和其他公司)提供一系列与各种深度学习/机器学习框架兼容的服务。盒子。
于 2017-11-26T00:48:34.357 回答