0 Replies Latest reply on Dec 16, 2008 10:09 AM by asnax

    Issues with sdk1.3 on openSUSE 11.1 with 4870X2

    asnax
      Issues seem to be minor, but all comments welcome

       

      Hi everyone,

      I would like to report on my very first attempt to get AMD's Brook+ to
      work for me. There are some open issues, see the end of this post. Any
      help is welcome!


      Hardware/software that I am using:

      HD4870X2
      i7 965e
      openSUSE 11.1 RC1 64bit


      Basic installation:

      ati-driver-installer-8-12-x86.x86_64.run
      One issue with 32/64 bit confusion fixed as follows:
      cd /usr/lib/dri
      mv fglrx_dri.so fglrx_dri.org
      ln -s /usr/lib64/dri/fglrx_dri.so
      --> hardware acceleration seems to be fine

      amdstream-1.3.0_beta-lnx64.tar.gzip -> contains two files
      amdstream-brook-1.3.0_beta.x86_64.run
      amdstream-cal-1.3.0_beta.x86_64.run
      --> installs fine

      Brook+_Installation_Notes.pdf
      seems to be slightly outdated/incomplete.

      tcsh initialization (in .tcshrc):
      -----
      set path = ($path /usr/local/amdbrook/sdk/bin)
      setenv BROOKROOT /usr/local/amdbrook
      setenv CALROOT /usr/local/amdcal
      setenv LD_LIBRARY_PATH ${LD_LIBRARY_PATH}:/usr/local/amdbrook/sdk/lib:/usr/local/amdcal/lib
      -----
      The lib-directories mentioned in the install notes do not exist, so I guess
      I have to compile things myself.

      Used YaST to install g++-4.1 since the default compiler in SUSE 11.1 is 4.3,
      which does not work with amdstream-1.3.0_beta.
      > gcc-4.1 --version
      gcc-4.1 (GCC) 4.1.3 20080612 (prerelease) (SUSE Linux)

      Compiling:
      cd /usr/local/amdbrook/samples
      make
      --> fails with typical g++-4.3 compatibility errors
      Replaced the two occurences of "g++" by "g++-4.1" in
      amdbrook/samples/utils/build/config.mk

      make
      --> quite a number of warnings, but the only error is of the type
      lib  -l brook_d  -L../../../../samples/bin/CPP/lnx_x86_64
      /usr/lib64/gcc/x86_64-suse-linux/4.1.3/../../../../x86_64-suse-linux/bin/ld: error in /usr/lib64/gcc/x86_64-suse-linux/4.1.3/crtend.o(.eh_frame no .eh_frame_hdr table will be created.
      --------
      does not seem to prevent code from running



      Running some examples:
      ----------------------

      amdbrook/samples/bin/CPP/lnx_x86_64> hello_brook
      libxcb: WARNING! Program tries to unlock a connection without having acquired
              a lock first, which indicates a programming error.
              There will be no further warnings about this issue.
      libxcb: WARNING! Program tries to lock an already locked connection,
              which indicates a programming error.
              There will be no further warnings about this issue.
      There are 6elements larger than 3.33333in the stream.

      Googled the warning:
      Under different circumstances something like
      LIBXCB_ALLOW_SLOPPY_LOCK=true helps to prevent crashes; no effect
      here, the warning remains, but the code does not crash with or without
      it. I will not repeat these warnings in what follows


      The CPP version seems to be missing certain output, which the legacy version
      does display:

      legacy/lnx_x86_64> hello_brook
      There are 6.000000 elements larger than 3.333333 in the stream.

      CPP/lnx_x86_64> hello_brook
      There are 6elements larger than 3.33333in the stream.

      CPP/lnx_x86_64> simple_matmult
      (no output apart from the warning mentioned above)

      legacy/lnx_x86_64> simple_matmult
      Printing first row of data, for more use -v
      Input Matrix A:
      0.840188 0.394383 0.783099 0.798440 0.911647 0.197551 0.335223 0.768230 0.277775 0.553970 0.477397 0.628871 0.364784 0.513401 0.952230 0.916195 0.635712 0.717297 0.141603 0.606969 0.016301 0.242887 0.137232 0.804177 0.156679 0.400944 0.129790 0.108809 0.998924 0.218257 0.512932 0.839112 0.612640 0.296032 0.637552 0.524287 0.493583 0.972775 0.292517 0.771358 0.526745 0.769914 0.400229 0.891529 0.283315 0.352458 0.807725 0.919026 0.069755 0.949327 0.525995 0.086056 0.192214 0.663227 0.890233 0.348893 0.064171 0.020023 0.457702 0.063096 0.238280 0.970634 0.902208 0.850920

      Input Matrix B:
      0.650716 0.368006 0.078427 0.319776 0.027833 0.554068 0.317431 0.586137 0.220022 0.895901 0.139076 0.954704 0.742564 0.427046 0.151865 0.198083 0.130715 0.029363 0.251634 0.266301 0.479015 0.308517 0.416264 0.354493 0.156662 0.971783 0.364441 0.520852 0.780187 0.466253 0.195831 0.430903 0.834260 0.274258 0.750679 0.862092 0.828327 0.068110 0.448229 0.048349 0.964012 0.587305 0.003053 0.706575 0.014350 0.154917 0.904658 0.145065 0.184280 0.156293 0.411366 0.663295 0.464810 0.827630 0.017788 0.621472 0.799414 0.382229 0.142323 0.579601 0.848482 0.338155 0.010504 0.682742

      Output Matrix:
      16.312584 16.095516 18.783838 15.535410 14.176755 15.884678 14.399310 16.213316 14.287461 16.474983 14.003461 16.623430 20.004551 14.839297 17.294764 16.104197 16.967499 13.637995 16.453846 14.951024 15.908855 15.824086 19.793976 16.051609 16.632954 18.340866 15.459612 16.657274 16.744064 15.424380 15.511408 17.164022 16.931198 18.068708 17.928053 17.016041 16.945206 17.672926 16.763391 16.903675 18.866383 15.517785 14.925305 18.807539 16.461185 17.281868 15.792428 16.822145 16.953554 14.466745 16.794739 17.869562 17.195898 18.241959 17.560059 14.446342 14.624796 13.895147 17.758978 17.324759 17.270899 13.537880 17.440371 16.908150


      ------------------


      Any ideas on the following issues are welcome:

      0. Is the output from simple_matmult actually correct?

      1. What is the difference between the legacy and CPP versions? Should
         both be working?

      2. Is there a solution to the libxcb warnings? In my case the code does not
         crash, so this is not serious.

      3. Is the error about "no .eh_frame_hdr table will be created" something to
         worry about?

      4. What is a standard way to obtain benchmark information?


      Sorry if I am repeating some well-known issues, I am new to this.
      Thanks!