• 2009-02-23

    Build GotoBLAS with Nehalem under SUSE Linux - [tech]

    Tag:

    版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
    http://blues083.blogbus.com/logs/35625185.html

         Goto果然是大牛,两个邮件就解决了我的问题。之前还和microsoft的叶思量呢,你说做HPC要是做到了老头,你说人家得有多牛啊~

         记录一下:

         CPU: intel X5570 x 2 

        MEM: 4G x 6 DDR3 REG ECC 1333 

        OS: Suse Enterprise Linux 10 SP2 x86_64 

        I use the patch that Dr. Goto supply for Nehalem. 

     

           getarch.c: 

     

           #define FORCE_PENRYN 

     

           in Makefile.rule only: 

     

            C_COMPILER = GNU 

     

            F_COMPILER = GFORTRAN 

     

            BINARY64  = 1 

     

            then: 

     

            #make 

     

            and I got this: 

     

          make[3]: Entering directory `/root/GotoBLAS/level1/copy/x86_64' 

    gcc -c -O2 -D__64BIT__ -D_GNU_SOURCE -Wall -fPIC  -m64 -DF_INTERFACE_GFORT -DPACKED_RETURN -DMAX_CPU_NUMBER=16 -DNUM_BUFFERS=\(2*16\) -DEXPRECISION -m128bit-long-double -DASMNAME=scopy_k -DASMFNAME=scopy_k_ -DNAME=scopy_k_ -DCNAME=scopy_k -DBUNDERSCORE=_ -DNEEDBUNDERSCORE -I../../.. -DARCH_X86_64 -DPENRYN -DL1_DATA_SIZE=32768 -DL1_DATA_LINESIZE=64 -DL2_SIZE=1048576 -DL2_LINESIZE=64 -DDTB_ENTRIES=256 -DDTB_SIZE=4096 -DHAVE_CMOV -DHAVE_MMX -DHAVE_SSE -DHAVE_SSE2 -DHAVE_SSE3 -DHAVE_SSSE3 -DHAVE_SSE4_1 -DCORE_PENRYN -UDOUBLE -UCOMPLEX -DC_INTERFACE copy_sse_core2.S -o ../scopy_k.o 

    copy_sse_core2.S: Assembler messages: 

    copy_sse_core2.S:244: Error: no such instruction: `palignr $4,%xmm0,%xmm1' 

    copy_sse_core2.S:249: Error: no such instruction: `palignr $4,%xmm9,%xmm2' 

    copy_sse_core2.S:254: Error: no such instruction: `palignr $4,%xmm10,%xmm3' 

    copy_sse_core2.S:259: Error: no such instruction: `palignr $4,%xmm11,%xmm4' 

    copy_sse_core2.S:264: Error: no such instruction: `palignr $4,%xmm12,%xmm5' 

    copy_sse_core2.S:269: Error: no such instruction: `palignr $4,%xmm13,%xmm6' 

    copy_sse_core2.S:274: Error: no such instruction: `palignr $4,%xmm14,%xmm7' 

    copy_sse_core2.S:279: Error: no such instruction: `palignr $4,%xmm15,%xmm8' 

    copy_sse_core2.S:291: Error: no such instruction: `palignr $4,%xmm0,%xmm1' 

    copy_sse_core2.S:295: Error: no such instruction: `palignr $4,%xmm9,%xmm2' 

    copy_sse_core2.S:299: Error: no such instruction: `palignr $4,%xmm10,%xmm3' 

    copy_sse_core2.S:303: Error: no such instruction: `palignr $4,%xmm11,%xmm4' 

    copy_sse_core2.S:307: Error: no such instruction: `palignr $4,%xmm12,%xmm5' 

    copy_sse_core2.S:311: Error: no such instruction: `palignr $4,%xmm13,%xmm6' 

    copy_sse_core2.S:315: Error: no such instruction: `palignr $4,%xmm14,%xmm7' 

    copy_sse_core2.S:319: Error: no such instruction: `palignr $4,%xmm15,%xmm8' 

    copy_sse_core2.S:339: Error: no such instruction: `palignr $4,%xmm0,%xmm1' 

    copy_sse_core2.S:340: Error: no such instruction: `palignr $4,%xmm5,%xmm2' 

    copy_sse_core2.S:345: Error: no such instruction: `palignr $4,%xmm6,%xmm3' 

    copy_sse_core2.S:346: Error: no such instruction: `palignr $4,%xmm7,%xmm4' 

    copy_sse_core2.S:368: Error: no such instruction: `palignr $4,%xmm0,%xmm1' 

    copy_sse_core2.S:369: Error: no such instruction: `palignr $4,%xmm3,%xmm2' 

    copy_sse_core2.S:385: Error: no such instruction: `palignr $4,%xmm0,%xmm1' 

    copy_sse_core2.S:605: Error: no such instruction: `palignr $12,%xmm0,%xmm1' 

    copy_sse_core2.S:610: Error: no such instruction: `palignr $12,%xmm9,%xmm2' 

    copy_sse_core2.S:615: Error: no such instruction: `palignr $12,%xmm10,%xmm3' 

    copy_sse_core2.S:620: Error: no such instruction: `palignr $12,%xmm11,%xmm4' 

    copy_sse_core2.S:625: Error: no such instruction: `palignr $12,%xmm12,%xmm5' 

    copy_sse_core2.S:630: Error: no such instruction: `palignr $12,%xmm13,%xmm6' 

    copy_sse_core2.S:635: Error: no such instruction: `palignr $12,%xmm14,%xmm7' 

    copy_sse_core2.S:640: Error: no such instruction: `palignr $12,%xmm15,%xmm8' 

    copy_sse_core2.S:652: Error: no such instruction: `palignr $12,%xmm0,%xmm1' 

    copy_sse_core2.S:656: Error: no such instruction: `palignr $12,%xmm9,%xmm2' 

    copy_sse_core2.S:660: Error: no such instruction: `palignr $12,%xmm10,%xmm3' 

    copy_sse_core2.S:664: Error: no such instruction: `palignr $12,%xmm11,%xmm4' 

    copy_sse_core2.S:668: Error: no such instruction: `palignr $12,%xmm12,%xmm5' 

    copy_sse_core2.S:672: Error: no such instruction: `palignr $12,%xmm13,%xmm6' 

    copy_sse_core2.S:676: Error: no such instruction: `palignr $12,%xmm14,%xmm7' 

    copy_sse_core2.S:680: Error: no such instruction: `palignr $12,%xmm15,%xmm8' 

    copy_sse_core2.S:700: Error: no such instruction: `palignr $12,%xmm0,%xmm1' 

    copy_sse_core2.S:701: Error: no such instruction: `palignr $12,%xmm5,%xmm2' 

    copy_sse_core2.S:706: Error: no such instruction: `palignr $12,%xmm6,%xmm3' 

    copy_sse_core2.S:707: Error: no such instruction: `palignr $12,%xmm7,%xmm4' 

    copy_sse_core2.S:729: Error: no such instruction: `palignr $12,%xmm0,%xmm1' 

    copy_sse_core2.S:730: Error: no such instruction: `palignr $12,%xmm3,%xmm2' 

    copy_sse_core2.S:746: Error: no such instruction: `palignr $12,%xmm0,%xmm1' 

    make[3]: *** [../scopy_k.o] Error 1 

    make[3]: Leaving directory `/root/GotoBLAS/level1/copy/x86_64' 

    make[2]: *** [scopy_k.o] Error 2 

    make[2]: Leaving directory `/root/GotoBLAS/level1/copy' 

    make[1]: *** [libs] Error 1 

    make[1]: Leaving directory `/root/GotoBLAS/level1' 

    make: *** [libs] Error 1 

    linux-1une:~/GotoBLAS # 

     

        原因是GotoBLAS需要使用>=2.17的binutils,然后,虽然安装了新的binutils,但是被安装在了/usr/local/bin,而gcc调用的是/usr/bin下的,所以也需要手工更新一下/usr/bin下的as。

        就这么简单啊。


    收藏到:Del.icio.us




    评论

  • 还有楼主的patch适用最新的SandyBridge架构的cpu吗 有人做过测试吗
  • 请楼主也发我一份吧 谢谢啦 dqliu3@student.cityU.edu.hk
  • 我的邮箱是chengjun_2009@126.com 谢谢您了
  • 你好,我最近尝试编译gotoblas 1.26,也是在新的intel平台上,也出现了前几位说的问题 您能把那个patch发给我一下吗 也不知道您还上不上线了 谢谢
  • Hi, 你好,我的问题同Shrek。 即:gotoblas在intel的E5520 新cpu上编译过不去。
    你能将需要的那个patch,发到我邮箱吗?谢谢。
    我的邮箱:jinslotus@163.com
  • 我也需要gotoblas 1.26 的 patch heianjingling@gmail.com谢谢!
  • 兄弟,我安装gotoblas的时候也出现了问题,网上找了很多资料,最后找到了你这里,我和dayqz的问题一样,你能给我发一个patch吗,我很需要,谢谢 我的邮箱地址是julian_chow@rocketmail.com
  • 我也需要PATCH,谢谢 邮件地址 hbwlj@163.com
    blues083回复hbwlj说:
    Hi ,已经发过去了. GotoBLAS2都发布了,用新的吧,挺好的
    2009-11-08 22:31:11
  • 还是没有收到啊?
  • 我的email是dongfengcn@hotmail.com,谢谢!
    blues083回复df说:
    已发送,请查收。
    2009-08-25 16:55:52
  • 你好,我最近尝试编译gotoblas 1.26,也是在新的intel平台上,方便把那个patch也发给我一下吗?谢谢!
    blues083回复df说:
    重点是邮箱地址。谢谢!
    2009-08-25 12:35:53
  • 您好,

    我在Intel X5560平台上編譯GotoBLAS也遇到了類似的問題。不知道您方便也將patch檔案寄給我呢?
    順便問您:
    1. 這個patch是從哪邊來的?
    2. 該如何上這個patch檔呢?

    再次謝謝您的幫忙
    blues083回复Shrek说:
    1、Goto在GotoBLAS的mail list里发的。
    2、patch命令,自己研究一下就知道了。
    3、请留下mail地址。
    谢谢!
    2009-07-15 22:15:14
  • 谢谢哈
    原来是需要这个
    #define FORCE_PENRYN
  • hi, 哥们,我也是做hpc的

    gotoblas在intel的E5520 新cpu上编译过不去阿
    rhel5.3 binutils-2.17.50.0.6-9.el5

    gcc -c -O2 -D__64BIT__ -D_GNU_SOURCE -Wall -fPIC -m64 -DF_INTERFACE_F2C -DSMP_SERVER -DMAX_CPU_NUMBER=16 -DNUM_BUFFERS=\(2*16\) -DASMNAME=isamax_k -DASMFNAME=isamax_k_ -DNAME=isamax_k_ -DCNAME=isamax_k -DBUNDERSCORE=_ -DNEEDBUNDERSCORE -I../../.. -DARCH_X86_64 -DINTEL_UNKNOWN -DL1_DATA_SIZE=32768 -DL1_DATA_ASSOCIATIVE=8 -DL1_DATA_LINESIZE=64 -DL2_SIZE=262144 -DL2_ASSOCIATIVE=6 -DL2_LINESIZE=64 -DDTB_SIZE=4096 -DDTB_ASSOCIATIVE=4 -DDTB_ENTRIES=64 -DHAVE_CMOV -DHAVE_MMX -DHAVE_SSE -DHAVE_SSE2 -DHAVE_SSE3 -DHAVE_SSSE3 -DHAVE_SSE4_1 -DHAVE_SSE4_2 -DHAVE_CFLUSH -DNUM_SHAREDCACHE=1 -DNUM_CORES=1 -UDOUBLE -UF_INTERFACE -DABS iamax_sse.S -o ../isamax_k.o
    In file included from ../../../common.h:201,
    from iamax_sse.S:23:
    ../../../param.h:1195:21: error: division by zero in #if
    ../../../param.h:1195:21: error: division by zero in #if
    ../../../param.h:1205:21: error: division by zero in #if
    ../../../param.h:1205:21: error: division by zero in #if
    ../../../param.h:1225:21: error: division by zero in #if
    ../../../param.h:1225:21: error: division by zero in #if
    ../../../param.h:1235:21: error: division by zero in #if


    单机hpl效率能上95%么...linpack能上, hpl怎么测只到92%+阿


    我的email: dayqz##@###hotmail.com
    blues083回复dayqz说:
    原版的1.26是不行的,需要一个patch,发到你邮箱了。效率,我问过Intel的工程师,他们用intel的一套,MPI+HPL+MKL,SMP的方式,93%~94%。
    更新一下,我的一个同事花了一些时间,用多线程的GotoBLAS,4个HPL进程,每个进程两个线程,效率跑到了97%,这只是5520的结果,估计5550以上的更好些,你知道的,5550以上的内存才能跑到1333。
    2009-06-16 18:47:51