Pyrit & AMD Stream - Ubuntu Nvidia CUDA

DDos útoky, crack hesla, OllyDbg, rAdmin, Metasploit, penetrační testy, ladění, Backtrack, Wifiway, Ubuntu, DVL, Nesus, Maltego a další..
Odpovědět
Uživatelský avatar
elektrolam
Level 3
Příspěvky: 71
Registrován: 28 bře 2009, 11:50

06 kvě 2009, 18:14

Zdravím. Už nějaký čas se pokouším zprovoznit v Ubuntu Linux 8.10 64bit CPU program Pyrit a AMD Stream CUDA na grafické kartě ATI3870. Vše bezvýsledně. Našla by se zde zpřízněná duše, která by sem hodila funkční postup? Jsem v koncích a hlava mi už vůbec nebere ...

Uživatelský avatar
Marcos
Level 5
Příspěvky: 141
Registrován: 16 zář 2007, 13:34

06 kvě 2009, 21:39

Napiš sem bližší informace, co jsi zkoušel, co Ti nešlo atd., ať máme z čeho vycházet a pak se dá poradit.

Uživatelský avatar
elektrolam
Level 3
Příspěvky: 71
Registrován: 28 bře 2009, 11:50

07 kvě 2009, 09:59

Vycházím z tohoto návodu :

AMD Stream with Ubuntu 8.10 (Intrepid Ibex). Note: I'm using the 32bit stuff, if you need 64bit the procedure is probably the same just with the 64bit packages and some paths changed.

1) Install Catalyst 8.12 - since there's no .deb yet I installed it directly
2) Grab the Stream SDK
3) Run the cal and Brook installer. Both will try to install RPMs.
While the license dialog is displayed one can copy the amdcal and amdbrook dirs from /tmp to another place. Since rpm won't be able to fulfill the dependencies, the installer will fail, so you may abort it as well.
4) apt-get install alien
5) alien amdstream-brook-1.3.0_beta-1.i386.rpm will generate a .deb for you
6) alien amdstream-cal-1.3.0_beta-1.i386.rpm and another .deb
7) dpkg -i amdstream-brook-1.3.0_beta-1.i386.deb
8) dpkg -i amdstream-cal_1.3.0_beta-2_i386.deb
9) add /usr/local/amdbrook/sdk/lib/ to /etc/ld.so.conf
10) sudo ldconfig
11) the stuff will be in /usr/local/amdcal and /usr/local/amdbrook
12) edit /usr/local/amdbrook/sdk/include/brook/CPU/brtvector.hpp remove the static from line 188: #define SPECIALGETAT(TYP) template <> static TYP GetAt (const TYP& in,int UNUSED(i)) {return in;} (found that solution here)
13) add #define INT_MIN (1<<31) and #define INT_MAX ((1<<31)-1) to /usr/local/amdbrook/samples/CPP/common/util.cpp

Note that you need to start the binaries from X or you'll get a device open fail. Cost me several minutes to notice that while trying to start them via ssh. Opened a screen via vncviewer and attached it via ssh. Works fine now.

I guess that's all. Finally I was able to compile the apps in /usr/local/amdbrook/samples/CPP/apps
The binaries will be in /usr/local/amdbrook/samples/bin/CPP/lnx_x86_32

Tried double_precision_optimized_matmult (which probably does double precision matrix multiplication) -t -p -x 1024 -y 1024 -i 20

I get locking assertion failures, but it seems to run nevertheless.
Locking assertion failure. Backtrace:
#0 /usr/lib/libxcb-xlib.so.0 [0xb7a877c7]
#1 /usr/lib/libxcb-xlib.so.0(xcb_xlib_lock+0x2e) [0xb7a8796e]
#2 /usr/lib/libX11.so.6 [0xb7acf619]
#3 /usr/lib/libX11.so.6(XFreeGC+0x26) [0xb7aa9ff6]
#4 /usr/lib/libX11.so.6(XCloseDisplay+0x5f) [0xb7aa31ff]
#5 /usr/lib/libamdcaldd.so [0xb463547a]
#6 /usr/lib/libamdcaldd.so [0xb46420d5]
#7 /usr/lib/libamdcalrt.so(calInit+0x81) [0xb7b9be11]
#8 /usr/local/amdbrook/sdk/lib/libbrook.so(_ZN10CALRuntime10initializeEv+0x18) [0xb7ea5930]
#9 /usr/local/amdbrook/sdk/lib/libbrook.so(_ZN10CALRuntime6createEv+0x45) [0xb7ea5c41]
#10 /usr/local/amdbrook/sdk/lib/libbrook.so(_ZN5brook7Runtime11getInstanceEv+0xaf) [0xb7e9a777]
#11 ./double_precision_optimized_matmult [0x8052b15]
#12 ./double_precision_optimized_matmult [0x8051220]
#13 ./double_precision_optimized_matmult [0x805381a]
#14 /lib/tls/i686/cmov/libc.so.6(__libc_start_main+0xe5) [0xb7bd1685]
#15 ./double_precision_optimized_matmult(__gxx_personality_v0+0x89) [0x8049dc1]
But I also get tons of GFLOPs :-]

Bohužel se mi nedaří vytvořit rpm (jeden se mi vytvoří druhý ne) z
hxxp://developer.amd.com/Downloads/atistream_1.4.0_beta-lnx64.tar.gzip
Pokud by jste mi to někdo rovnou převedl do *.deb balíčku byl bych rád.
Naposledy upravil(a) elektrolam dne 07 kvě 2009, 10:01, celkem upraveno 1 x.

Uživatelský avatar
Marcos
Level 5
Příspěvky: 141
Registrován: 16 zář 2007, 13:34

07 kvě 2009, 20:56

Uploadnul jsem Ti dva soubory, které jsou vytvořeny z originálních .run instalačních balíčků. Po rozbalení je v nich návod, kam který nakopírovat. Poté jen edituj /etc/ld.so.conf a přidej do něj řádek /usr/local/atibrook/sdk/lib/ , ulož a v terminálu zavolej příkaz ldconfig. Zkus pak nainstalovat Pyrit a jeho Ati modul CPyrit-Stream a snad už by to mělo být funkční. Pokud ne, pak bych zkusil pokračovat tím zbytkem návodu. Odkazy:
hxxp://uloz.to/1739251/atistream-brook-1.4.0_beta-1.x86_64-files.tar.bz2
hxxp://uloz.to/1739270/atistream-cal-1.4.0_beta-1.x86_64-files.tar.bz2

Uživatelský avatar
elektrolam
Level 3
Příspěvky: 71
Registrován: 28 bře 2009, 11:50

07 kvě 2009, 22:22

Moc díky hned na to skočím. Ještě otázečka, Pyrit a CPyrit-Stream mám instalovat z binárních balíčků
hxxp://pyrit.googlecode.com/svn/tags/0.2.2/Pyrit-0.2.2-1.x86_64.rpm
hxxp://pyrit.googlecode.com/svn/tags/0.2.2/CPyrit-Stream-0.2.2-1.x86_64.rpm
pochopil jsem dobře? Tady je link na hlavní stránku ...
hxxp://code.google.com/p/pyrit/wiki/FirstSteps

Uživatelský avatar
Marcos
Level 5
Příspěvky: 141
Registrován: 16 zář 2007, 13:34

07 kvě 2009, 22:27

Zkus raději stáhnout nejnovější verzi a zkompilovat si ji. Příkaz v terminálu pro stáhnutí:
svn checkout hxxp://pyrit.googlecode.com/svn/trunk/ pyrit-read-only
Ale nevím, zda ty zdrojové kódy jsou i pro 64bit. Pokud to nepůjde zkompilovat, tak pak stáhni a nainstaluj ty binárky.

Uživatelský avatar
elektrolam
Level 3
Příspěvky: 71
Registrován: 28 bře 2009, 11:50

07 kvě 2009, 23:07

Stáhnul jsem ze svn checkout hxxp://pyrit.googlecode.com/svn/trunk/ pyrit-read-only - pak:
cd pyrit-read-only
cd pyrit
sudo root
./setup.py build
./setup.py install
proběhla kompilace + instalace
sudo pyrit
Pyrit 0.2.3 (C) 2008, 2009 Lukas Lueg http://pyrit.googlecode.com
This code is distributed under the GNU General Public License v3

Psyco-acceleration not installed. Usage: pyrit [options] command

Recognized options:
-e : ESSID for the command
-f : filename for the command ('-' is stdin/stdout)

Recognized commands:
batch : Batchprocess
benchmark : Determine performance of cores
create_essid : Create a new ESSID
eval : Count the passwords available and matching results
export_cowpatty : Export into a new cowpatty file
export_hashdb : Export into an existing airolib database
import_passwords : Import passwords into the Password-blobspace
list_cores : List available cores
list_essids : List all ESSIDs in the ESSID-blobspace
passthrough : Compute PMKs on the fly and write to stdout
Je to správně ?

Uživatelský avatar
Marcos
Level 5
Příspěvky: 141
Registrován: 16 zář 2007, 13:34

07 kvě 2009, 23:16

Ve složce se stáhnutým Pyritem by měly být tuším že další tři podsložky. Jedna je Pyrit - jen jádro Pyritu, a další rozšíření CPyrit-CUDA a CPyrit-Stream. Ty by jsi měl ještě tedy nainstalovat ten CPyrit-Stream, stejným postupem jako samotný Pyrit. Jinak samotný Pyrit máš nainstalovaný správně, jen by chtělo ještě doinstalovat Psyco. Není to nutné pro běh Pyritu, ale je to lepší. Toto python rozšíření výrazně urychluje v Pyritu načítání velkých slovníků apod.
Naposledy upravil(a) Marcos dne 07 kvě 2009, 23:23, celkem upraveno 1 x.

Uživatelský avatar
elektrolam
Level 3
Příspěvky: 71
Registrován: 28 bře 2009, 11:50

07 kvě 2009, 23:28

Někde mám něco špatně nebo něco schází..
./setup.py install
running install
running build
running build_ext
Skipping rebuild of AMD-Stream kernel ...
Building modules...
building '_cpyrit._cpyrit_stream' extension
gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -I/usr/local/atibrook/sdk/include -I_brook_tmp -I/usr/include/python2.6 -c _brook_tmp/_stream.cpp -o build/temp.linux-x86_64-2.6/_brook_tmp/_stream.o -O2
cc1plus: warning: command line option "-Wstrict-prototypes" is valid for Ada/C/ObjC but not for C++
In file included from /usr/local/atibrook/sdk/include/brook/CPU/brt.hpp:51,
from /usr/local/atibrook/sdk/include/brook/brook.h:54,
from _brook_tmp/_stream.cpp:7:
/usr/local/atibrook/sdk/include/brook/CPU/brtvector.hpp:322: error: explicit template specialization cannot have a storage class
/usr/local/atibrook/sdk/include/brook/CPU/brtvector.hpp:323: error: explicit template specialization cannot have a storage class
/usr/local/atibrook/sdk/include/brook/CPU/brtvector.hpp:324: error: explicit template specialization cannot have a storage class
/usr/local/atibrook/sdk/include/brook/CPU/brtvector.hpp:325: error: explicit template specialization cannot have a storage class
/usr/local/atibrook/sdk/include/brook/CPU/brtvector.hpp:326: error: explicit template specialization cannot have a storage class
/usr/local/atibrook/sdk/include/brook/CPU/brtvector.hpp:327: error: explicit template specialization cannot have a storage class
/usr/local/atibrook/sdk/include/brook/CPU/brtvector.hpp:328: error: explicit template specialization cannot have a storage class
/usr/local/atibrook/sdk/include/brook/CPU/brtvector.hpp:329: error: explicit template specialization cannot have a storage class
/usr/local/atibrook/sdk/include/brook/CPU/brtvector.hpp:330: error: explicit template specialization cannot have a storage class
error: command 'gcc' failed with exit status 1

Uživatelský avatar
Marcos
Level 5
Příspěvky: 141
Registrován: 16 zář 2007, 13:34

07 kvě 2009, 23:33

Na tuto chybu by snad mělo být řešení v tom návodu, co jsi tady zveřejnil, viz řádek 12 a 13:
12) edit /usr/local/amdbrook/sdk/include/brook/CPU/brtvector.hpp remove the static from line 188: #define SPECIALGETAT(TYP) template <> static TYP GetAt (const TYP& in,int UNUSED(i)) {return in;} (found that solution here)
13) add #define INT_MIN (1<<31) and #define INT_MAX ((1<<31)-1) to /usr/local/amdbrook/samples/CPP/common/util.cpp
Naposledy upravil(a) Marcos dne 07 kvě 2009, 23:33, celkem upraveno 1 x.

Uživatelský avatar
elektrolam
Level 3
Příspěvky: 71
Registrován: 28 bře 2009, 11:50

07 kvě 2009, 23:42

ted přesně nevím co to po mně chce, odstranit pevný řádek 188 ... dneska jsem už mrtví, dík za pomoc, mrknu na to zítra.

Uživatelský avatar
Marcos
Level 5
Příspěvky: 141
Registrován: 16 zář 2007, 13:34

08 kvě 2009, 00:41

Takže dle návodu výše ty soubory poupravit nepůjdou, protože byl psán pro starší verzi amd-brook a v této novější, co máš nainstalovanou, už je vše trochu jinak. V souboru /usr/local/atibrook/sdk/include/brook/CPU/brtvector.hpp se na řádku 188 nenachází v návodu uvedený příkaz:
#define SPECIALGETAT(TYP) template <> static TYP GetAt (const TYP& in,int UNUSED(i)) {return in;}.

Ten je až na řádku 320 a 1836. A hned ob řádek níže od 320 začíná Tvůj problém, řádky 322 až 330, viz error při kompilaci. Toto je ta část kódu:
320 #define SPECIALGETAT(TYP) template <> static TYP GetAt (const TYP& in,int UNUSED(i)) {return in;}
321
322 SPECIALGETAT(int)
323 SPECIALGETAT(unsigned int)
324 SPECIALGETAT(char)
325 SPECIALGETAT(unsigned char)
326 SPECIALGETAT(short)
327 SPECIALGETAT(unsigned short)
328 SPECIALGETAT(float)
329 SPECIALGETAT(double)
330 SPECIALGETAT(bool)
Zkus odkomentovat řádek 320, tz. odebrat # , uložit změnu a pokusit se znova zkompilovat CPyrit-Stream a pak dle výsledku se uvidí co dále.
Naposledy upravil(a) Marcos dne 08 kvě 2009, 00:42, celkem upraveno 1 x.

Uživatelský avatar
elektrolam
Level 3
Příspěvky: 71
Registrován: 28 bře 2009, 11:50

09 kvě 2009, 10:17

Takže už se mi to povedlo zkompilovat podle vašich rad. Vyeditoval jsem sudo nano /usr/local/atibrook/sdk/include/brook/CPU/brtvector.hpp a přepsal v něm
#define SPECIALGETAT(TYP) template <> static TYP GetAt (const TYP& in,int UNUSED(i)) {return in;}.
na
#define SPECIALGETAT(TYP) template <> TYP GetAt (const TYP& in,int UNUSED(i)) {return in;}.
Dále jsem vložil
#define INT_MIN (1<<31)
#define INT_MAX ((1<<31)-1)
do souboru sudo nano /usr/local/atibrook/samples/CPP/common/util.cpp

Výsledek je jen CPU, GPU nevidim nikde.
Pyrit 0.2.3 (C) 2008, 2009 Lukas Lueg http://pyrit.googlecode.com
This code is distributed under the GNU General Public License v3

The ESSID-blobspace seems to be empty; you should create an ESSID...

The following cores seem available...
#1: 'CPU-Core (x86_64)'
Používám verzi ovladače 8.54.3 Catalys 2.1

Uživatelský avatar
elektrolam
Level 3
Příspěvky: 71
Registrován: 28 bře 2009, 11:50

09 kvě 2009, 11:50

Pro jistotu jsem aktualizoval ovladač na nejnovější podle návodu WiKi na 8.60.3 a Catalyst 2.6.. Do terminálu jsem zadal: pyrit list_cores
Pyrit 0.2.3 (C) 2008, 2009 Lukas Lueg http://pyrit.googlecode.com
This code is distributed under the GNU General Public License v3

The ESSID-blobspace seems to be empty; you should create an ESSID...

The following cores seem available...
#1: 'CPU-Core (x86_64)'
#2: 'AMD-Stream device #0'
pyrit benchmark
alf@name:~$ pyrit benchmark
Pyrit 0.2.3 (C) 2008, 2009 Lukas Lueg http://pyrit.googlecode.com
This code is distributed under the GNU General Public License v3

The ESSID-blobspace seems to be empty; you should create an ESSID...

Running benchmark for at least 60 seconds...

AMD-Stream device #0: 2639.38 PMKs/s, 71.21% occupancy
CPU-Core (x86_64): 140.05 PMKs/s, 99.41% occupancy

Benchmark done. 2779.43 PMKs/s total.
Já jsem tak štastný (sice jsem čekal vyšší skore, ale i tak se to dá).. Ještě jednou díky moc všem za podporu.
Naposledy upravil(a) elektrolam dne 09 kvě 2009, 11:53, celkem upraveno 1 x.

Uživatelský avatar
cocaine
Level 7
Příspěvky: 398
Registrován: 29 dub 2008, 23:54
Bydliště: Země Oz

05 říj 2010, 11:37

Nejnovější pyrit + calpp + ati stream v článku

CAL++ ATI Stream

Nejnovější pyrit + Nvidia CUDA v článku

Nvidia CUDA + Pyrit

Benchmark nejlepších grafik současnosti :) v článku

GPU benchmark ATI HD5970 vs Nvidia GTX480
Jednou deset minut a ušetříš hodiny

Odpovědět
  • Informace
  • Kdo je online

    Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 1 host