Je veux utiliser mon GPU avec Pyrit. J'utilise Ubuntu 11.10, ATI Radeon HD 68xx et i7 2600K.
Étape faite:
Lorsque je lance un test de performance, je reçois:
~$ pyrit benchmark
Pyrit 0.4.0 (C) 2008-2011 Lukas Lueg http://pyrit.googlecode.com
This code is distributed under the GNU General Public License v3+
Running benchmark (5037.4 PMKs/s)... -
Computed 5037.45 PMKs/s total.
#1: 'CPU-Core (SSE2)': 667.8 PMKs/s (RTT 3.2)
#2: 'CPU-Core (SSE2)': 661.6 PMKs/s (RTT 3.2)
#3: 'CPU-Core (SSE2)': 664.0 PMKs/s (RTT 3.2)
#4: 'CPU-Core (SSE2)': 660.5 PMKs/s (RTT 3.2)
#5: 'CPU-Core (SSE2)': 669.7 PMKs/s (RTT 3.2)
#6: 'CPU-Core (SSE2)': 656.3 PMKs/s (RTT 3.2)
#7: 'CPU-Core (SSE2)': 667.4 PMKs/s (RTT 3.2)
#8: 'CPU-Core (SSE2)': 662.6 PMKs/s (RTT 3.1)
Comment s'assurer que AMD APP SDK est correctement installé?
Comment configurer Pyrit pour utiliser OpenCL et mon GPU?
MODIFIER:
Désinstallez Pyrit et réinstallez le SDK APP AMD. En essayant de compiler le module de support OpenCL pour Pyrit, j'obtiens cette erreur:
$ Sudo python setup.py build
The headers required to build the OpenCL-kernel were not found. Trying to continue anyway...
svn: '.' is not a working copy
running build
running build_ext
Building modules...
building 'cpyrit._cpyrit_opencl' extension
gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -I/usr/include/python2.7 -c _cpyrit_opencl.c -o build/temp.linux-x86_64-2.7/_cpyrit_opencl.o -DVERSION="0.3.0"
_cpyrit_opencl.c:23:19: fatal error: CL/cl.h: No such file or directory
compilation terminated.
error: command 'gcc' failed with exit status 1
C'est ainsi que je l'ai finalement fait sur Ubuntu Server 11.04
Installez un environnement X11 minimal:
aptitude install xserver-xorg xserver-xorg-core xserver-xorg-input-evdev xserver-xorg-video-ATI lightdm unity-greeter openbox
Ensuite, éditez le fichier /etc/lightdm/lightdm.conf et ajoutez le texte suivant (en remplaçant YOUR_USER_NAME par l’utilisateur sous lequel vous exécuterez hashcat):
[SeatDefaults]
greeter-session=unity-greeter
user-session=openbox
autologin-user=YOUR_USER_NAME
autologin-user-timeout=0
Ajoutez ensuite votre nom d'utilisateur au groupe nopasswdlogin:
usermod -a -G nopasswdlogin $USERNAME
Obtenez des dépendances de construction pour Catalyst:
aptitude build-dep fglrx
Téléchargez et installez Catalyst 12.8:
wget http://www2.ATI.com/drivers/linux/AMD-driver-installer-12-8-x86.x86_64.Zip
unzip AMD-driver-installer-12-8-x86.x86_64.Zip
sh AMD-driver-installer-8.982-x86.x86_64.run --uninstall=force
sh AMD-driver-installer-8.982-x86.x86_64.run
Générez un nouveau xorg.conf:
rm -f /etc/X11/xorg.conf*
amdconfig --adapter=all --initial
Assurez-vous que la variable env. DISPLAY est définie:
echo 'export DISPLAY=:0' >>~/.bashrc
Redémarrez et vous devriez être prêt.
Je n'ai jamais utilisé Pyrit ni essayé de le compiler, mais il semble que son script de configuration (setup.py) ne trouve pas les fichiers d'en-tête OpenCL. Vous devriez ressembler à des chemins nécessaires à la configuration dans un tel script. Les en-têtes OpenCL pour votre ATI VGA seront probablement installés dans certains sous-répertoires d'une installation de pilote.
MODIFIER:
Voici une partie de ce script qui définit le chemin OpenCL.h. Recherchez ce fichier sur votre PC et testez-le un peu, qui est choisi, puis essayez de le modifier et voyez si cela fonctionne.
OPENCL_INC_DIRS = []
OPENCL_LIB_DIRS = []
EXTRA_LINK_ARGS = []
LIBRARIES = ['crypto', 'z']
if sys.platform == 'darwin':
# Use the built-in framework on MacOS
EXTRA_LINK_ARGS.extend(('-framework', 'OpenCL'))
OPENCL_INC_DIRS.append('/System/Library/Frameworks/OpenCL.framework/Headers')
else:
LIBRARIES.append('OpenCL')
try:
if os.path.exists(os.environ['ATISTREAMSDKROOT']):
OPENCL_INC_DIRS.append(os.path.join(os.environ['ATISTREAMSDKROOT'], 'include'))
for path in ('lib/x86_64','lib/x86'):
if os.path.exists(os.path.join(os.environ['ATISTREAMSDKROOT'], path)):
OPENCL_LIB_DIRS.append(os.path.join(os.environ['ATISTREAMSDKROOT'], path))
break
except:
pass
for path in ('/usr/local/opencl/OpenCL/common/inc', \
'/opt/opencl/OpenCL/common/inc', \
'/usr/local/opencl/include', \
'/usr/local/cuda/include'):
if os.path.exists(path):
OPENCL_INC_DIRS.append(path)
break
else:
print >>sys.stderr, "The headers required to build the OpenCL-kernel " \
"were not found. Trying to continue anyway..."
# Get exact version-string from svn
try:
svn_info = subprocess.Popen(('svn', 'info'), \
stdout=subprocess.PIPE).stdout.read()
VERSION += ' (svn r%i)' % \
int(re.compile('Revision: ([0-9]*)').findall(svn_info)[0])
except:
pass