title: 深度学习GPU训练代码初学者，在写神经网络代码时，遇到了GPU计算结果与CPU计算结果不一致的问题？
desc: 自己写的三层神经网络，GPU是k20，数据集是MNIST，激活函数用的是sigmoid，当隐藏层神经元数是2048，4096，8192时，CPU与GPU的计算结果都是一致（通过对比一个epoch后，各层的激活函数值来判断两个平台的结果是否一致）。当隐藏层神经元增加到16384时，发现CPU与GPU的结果有一定的误差。有的误差很小，但最终影响我在测试集上测试泛化能力。我想问：是我的代码问题？还是GPU与CPU本身计算精度的问题？
topic: GPU 通用计算
content: 确实有可能，建议： 0. 代码确实没有bug？ 1. 确认cpu和gpu都用的float？ 2. gpu代码编译的时候没有使用--use-fast-math这样的编译选项？ 如果还不能确定的话，建议直接做pair test定位出错位置，然后具体情况具体分析。
answerer_tags: CS PhD， 机器学习与计算机视觉