现在的位置: 首页 > 综合 > 正文

gotoblas2 速度测试

2014年01月24日 ⁄ 综合 ⁄ 共 2595字 ⁄ 字号 评论关闭

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结合比较好。

抱歉!评论已关闭.