我尝试将此处提供的NN代码移植到Julia,希望提高网络培训速度.在我的桌面上,事实证明是这样的.
然而,在我的MacBook上,Python + numpy击败了Julia.
使用相同参数进行训练时,Python的速度是Julia的两倍(4.4s vs 10.6s,一个纪元).考虑到Julia比我的桌面上的Python更快(大约2秒),似乎有一些资源,Python/numpy在mac上使用Julia不是.即使并行化代码,我也只能达到~6.6s(尽管这可能是因为我没有在编写并行代码方面经验丰富).我认为问题可能是Julia的BLAS比mac中原生使用的vecLib库慢,但是尝试不同的构建似乎并没有让我更接近.我尝试使用USE_SYSTEM_BLAS = 1和使用MKL构建两者,其中MKL给出了更快的结果(上面公布的时间).
我将发布笔记本电脑的版本信息以及我的Julia实现,以供参考.我目前无法访问桌面,但我在Windows上使用openBLAS运行相同版本的Julia,与使用openBLAS的干净安装Python 2.7相比.
这里有什么我想念的吗?
编辑:我知道我的Julia代码在优化方面有很多不足之处,我非常感谢任何提高速度的技巧.然而,这不是Julia在我的笔记本电脑上运行速度慢的情况,而是Python更快.在我的桌面上,Python在约13秒内运行一个纪元,在笔记本电脑上它只需要大约4.4秒.我最感兴趣的是这种差异来自哪里.我意识到这个问题可能有点糟糕.
笔记本电脑版本:
julia> versioninfo()
Julia Version 0.6.2
Commit d386e40c17 (2017-12-13 18:08 UTC)
Platform Info:
OS: macOS (x86_64-apple-darwin17.4.0)
CPU: Intel(R) Core(TM) i5-7360U CPU @ 2.30GHz
WORD_SIZE: 64
BLAS: libmkl_rt
LAPACK: libmkl_rt
LIBM: libopenlibm
LLVM: libLLVM-3.9.1 (ORCJIT, broadwell)
Run Code Online (Sandbox Code Playgroud)
Python 2.7.14 (default, Mar 22 2018, 14:43:05)
[GCC 4.2.1 Compatible Apple LLVM 9.0.0 (clang-900.0.39.2)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import numpy
>>> …Run Code Online (Sandbox Code Playgroud)