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