theano +gotoblas2
pentium 4 双核 3.0G 512M内存,和酷睿2 双核2.4G 2G内存哪个更快呢?运行theano下的check_blas例子,
core 2 是6.5s
p4是18s,差远了。
amd 255 是5.18s
5675上得到的最好成绩是4.18s。12核啊。好像发挥不出来。
2011-12-12 今天r710终于到了。5675,2cpu 共12核,安装了python,准备测试下。
安装theano还费了点小劲,以前是安装好pythonxy后,直接用easy_install安装的theano。
这次想用git 安装,发现 pythonxy的套装中好像没有git和pip命令。
先下载了个mingw的安装包,然后down了半天,把mingw重新安装了一遍。120M啊。让哥等了好久。
安装好了后,发现git 还是不能用。不知道是和原来的设定冲突,还是要重启。//后来发现是make的问题,配置路径下没有make.exe只有mingw32-make.exe用这个编译就没问题了。
于是还是用easy-intall了。。
安装的是0.5rc版
一切默认,最容易成功。
不过发现gotoblas编译的时候被限制为 2个线程了。。。不知道如何改呢?
这位兄弟的博客有提到这个问题http://blog.csdn.net/G_Spider/article/details/6054764#comments
根据提示,我修改了makefile.rule里的设置DYNAMIC_ARCH = 1 的时候编译通不过。
NUM_THREADS = 24 后,可以编译通过,获得24线程的版本,不过实验还得明天到办公室做。总算是有所收获。
回到xeon win 2008 下,还是不行,昨天都编译成功了,今天连编译都不成功了。。看了下libgoto2.lib是生成了。链接成dll不成功好像。
win7上很容易成功啊。难道是win2008 的缘故
用make命令有找不到路径的错误。重新安装mingw后,这个错误可以没有。不过还是不行。
对照win 7上成功的。也有找不到路径的错误,也有lapack找不到的错误,不过还是成功了。关键似乎是链接时候的undefined错误,以前vs中,这个错误
和lib和include的设置有很大的关系。不过mingw中如何设置呢
错误信息如下:
Entering directory `/d/lg/gotoblas2/exports'
ranlib ../libgoto2_prescottp-r1.13.lib
dllwrap -o libgoto2.dll --def libgoto2.def \
--entry _dllinit@12 -s dllinit.obj --dllname libgoto2.dll ../libgoto2_prescottp-r1.13.lib -Lc:/mingw32-xy/bin/../lib/gcc/mingw32/4.5.2 -Lc:/mingw32-xy/bin/../lib/gcc -Lc:/mingw32-xy/bin/../lib/gcc/mingw32/4.5.2/../../../../mingw32/lib -Lc:/mingw32-xy/bin/../lib/gcc/mingw32/4.5.2/../../.. -lgfortran -lgfortran -lmingw32 -lmoldname -lmingwex -lmsvcrt -lmingw32 -lmoldname -lmingwex -lmsvcrt
make[1]: Leaving directory `/d/lg/gotoblas2/exports'
出错的是dllwrap。
ranlib 是更新静态库的符号索引表
dllwrap
....
非常悲剧的发现可能是gotoblas2 不支持prescott核心。也有可能是不支持win2008
Which architectures are supported?
Supported architectures include:
x86 family:Intel Pentium 3, Intel Pentium 4, Intel Core2, AMD Athlon, AMD Opteron
x86_64 family:Intel Pentium 4, Intel Core2, AMD Opteron
IA64 family:Intel Itanium2
Power family:IBM Power 4, Power 5, PPC970, PPC970MP, PPC440, PPC440 FP2
SPARC family:SPARC IV
Alpha family:EV4, EV5, EV6
xeon e5645是amd64架构的,不是intel 64, win2008r2 上是这么标的。
而prescott是一个很迷惑的cpu 架构。明天用cpu-z再看看。
wiki上看到56xx是Gulftown或者说是Westmere-EP系列的,而且至强系列里也没发现prescott
这个帖子提到编译xeon的问题
https://lists.tacc.utexas.edu/pipermail/gotoblas/2010-September/000666.html
终于找到openblas支持56xx的 ,快11点了,2个小时哦。
https://github.com/xianyi/OpenBLAS
明天测试下。
2011-12-14
今天先强制用NEHALEM来编译下gotoblas2---不成功。有人说成功的。是不是要把以前的编译都清空呢?
openblas 倒是能编译成功,
运行check_blas.py时候出错了。
return dlimport(lib_filename)
File "C:\Python27\lib\site-packages\theano-0.5.0rc1-py2.7.egg\theano\gof\cmodule.py", line 187, in dlimport
rval = __import__(module_name, {}, {}, [module_name]
纠结了。
在看看theano是否支持inte mkl吧
在家里的电脑上编译成功了target=NEHALEM的版本。考过来,能用,不过似乎2线程以上性能就一样了。
悲剧。
不管怎么说,theano还是和GPU结合比较好。