Intel Integrated GPU
#1
I have been using hashcat for few days and I am really confused about the use of integrated GPU. 

My question if the hashcat is using my GPU, or GPU is not supported in this hardware or it is running to its full potential ?

Some information about my device,

OS:
uname -a
Linux The-Distribution-Which-Does-Not-Handle-OpenCL-Well (Kali) 5.5.0-kali1-amd64 #1 SMP Debian 5.5.13-2kali1 (2020-04-03) x86_64 GNU/Linux

lspci | grep "VGA"

00:02.0 VGA compatible controller: Intel Corporation 2nd Generation Core Processor Family Integrated Graphics Controller (rev 09)

hashcat -I --force

hashcat (v5.1.0) starting...

OpenCL Info:

Platform ID #1
  Vendor  : The pocl project
  Name    : Portable Computing Language
  Version : OpenCL 1.2 pocl 1.4, None+Asserts, LLVM 9.0.1, RELOC, SLEEF, DISTRO, POCL_DEBUG

  Device ID #1
    Type          : CPU
    Vendor ID      : 128
    Vendor        : GenuineIntel
    Name          : pthread-Intel(R) Core(TM) i3-2350M CPU @ 2.30GHz
    Version        : OpenCL 1.2 pocl HSTR: pthread-x86_64-pc-linux-gnu-sandybridge
    Processor(s)  : 4
    Clock          : 2300
    Memory        : 2048/5813 MB allocatable
    OpenCL Version : OpenCL C 1.2 pocl
    Driver Version : 1.4


I have installed the opencl runtime driver,

dpkg -l | grep opencl

ii  intel-opencl-icd                    20.13.16352-1                  amd64        Intel graphics compute runtime for OpenCL
ii  libopencl-clang10                    10.0.0-2                        amd64        thin wrapper for clang
ii  ocl-icd-libopencl1:amd64            2.2.12-3                        amd64        Generic OpenCL ICD Loader
ii  opencl-c-headers                    2.2~2019.08.06-g0d5f18c-1      all          OpenCL (Open Computing Language) C header files
ii  opencl-clhpp-headers                2.1.0~~git51-gc5063c3-1        all          C++ headers for OpenCL development
ii  opencl-headers                      2.2~2019.08.06-g0d5f18c-1      all          OpenCL (Open Computing Language) header files
ii  pocl-opencl-icd:amd64                1.4-6                          amd64        pocl ICD



Benchmark Test for md5

hashcat -m 0 -b --force

hashcat (v5.1.0) starting in benchmark mode...

Benchmarking uses hand-optimized kernel code by default.
You can use it in your cracking session by setting the -O option.
Note: Using optimized kernel code limits the maximum supported password length.
To disable the optimized kernel code in benchmark mode, use the -w option.

OpenCL Platform #1: The pocl project
====================================
* Device #1: pthread-Intel(R) Core(TM) i3-2350M CPU @ 2.30GHz, 2048/5813 MB allocatable, 4MCU

Benchmark relevant options:
===========================
* --force
* --optimized-kernel-enable

Hashmode: 0 - MD5

Speed.#1.........: 97361.7 kH/s (39.05ms) @ Accel:1024 Loops:1024 Thr:1 Vec:8

Started: Tue Apr 21 17:55:41 2020
Stopped: Tue Apr 21 17:55:51 2020
Reply
#2
never use --force

remove pocl

try to figure out why your intel runtime is not detected
Reply
#3
(04-22-2020, 12:15 AM)undeath Wrote: never use --force

remove pocl

try to figure out why your intel runtime is not detected

Thank you the for the reply.

I have removed pocl and now the device is not showing.

I have installed the intel runtime driver, the files are in the path where they need to be.

For example,
/etc/OpenCL/vendors/intel64.icd

I do not know, if the opencl is not able to load the intel driver.
Reply
#4
in general the k a l i distribution is not recommended. You would uninstall both mesa and pocl and try to install all the required proprietary drivers from the hardware vendor page.

In some cases you would also need to install these:
https://hashcat.net/forum/thread-8116-po...l#pid43548

but normally the driver already installs everything correctly including the ICD (if not installed via the package manager, like apt, where everything is separated into their own packages).

does clinfo show all the devices ? maybe sometimes it's a good idea to step back a little bit and see if other (very easy/small) tools recognize your setuped devices etc
Reply
#5
(04-22-2020, 11:34 AM)philsmd Wrote: in general the k a l i distribution is not recommended. You would uninstall both mesa and pocl and try to install all the required proprietary drivers from the hardware vendor page.

In some cases you would also need to install these:
https://hashcat.net/forum/thread-8116-po...l#pid43548

but normally the driver already installs everything correctly including the ICD (if not installed via the package manager, like apt, where everything is separated into their own packages).

does clinfo show all the devices ? maybe sometimes it's a good idea to step back a little bit and see if other (very easy/small) tools recognize your setuped devices etc

After I remove pocl, the device is not showing up. 
I tried installing the Intel CPU runtime driver but may be they do not support The-Distribution-Which-Does-Not-Handle-OpenCL-Well (Kali) Linux. Although I installed in spite of the warning but did not work out. I have faced keyword hung up problem. 

May be the problem is my 2nd gen processor. I can not find the intel driver for that.

As I have pasted my benchmark speed for md5, is it normal or it is bad? I have included all my CPU info in the above question.
Reply
#6
(04-22-2020, 01:03 PM)saryal Wrote: After I remove pocl, the device is not showing up. 



I tried installing the Intel CPU runtime driver but may be they do not support The-Distribution-Which-Does-Not-Handle-OpenCL-Well (The-Distribution-Which-Does-Not-Handle-OpenCL-Well (Kali)) Linux. Although I installed in spite of the warning but did not work out. I have faced keyword hung up problem. 





May be the problem is my 2nd gen processor. I can not find the intel driver for that.







As I have pasted my benchmark speed for md5, is it normal or it is bad? I have included all my CPU info in the above question.







Hello. I know this thread is old but I used it yesterday so I figured I'd share. I just got this working with a 3rd gen i7 and ran a bench. My results were a bit higher, but considering you have half the threads and i7 vs i3 I'd guess your bench was about right. Also, I got it cracking with the cpu as well. I have a 2nd gen as well I will try tomorrow. Here is the command I used to crack and my bench results. I'll share my 2nd gen results tomorrow.



Crack Command: (-D 1 may be important)



hashcat -D 1 -m 22000 shed.22000 rockyou.txt



Bench results:



╭─user@xaruda in ~/.work took 4ms
╰─λ hashcat -m 0 -b  
hashcat (v6.2.5) starting in benchmark mode

Benchmarking uses hand-optimized kernel code by default.
You can use it in your cracking session by setting the -O option.
Note: Using optimized kernel code limits the maximum supported password length.
To disable the optimized kernel code in benchmark mode, use the -w option.

clGetDeviceIDs(): CL_DEVICE_NOT_FOUND

clGetDeviceIDs(): CL_DEVICE_NOT_FOUND

OpenCL API (OpenCL 2.1 LINUX) - Platform #1 [Intel(R) Corporation]
==================================================================
* Device #1: Intel(R) Core(TM) i7-3632QM CPU @ 2.20GHz, 3851/7767 MB (970 MB allocatable
), 8MCU

OpenCL API (OpenCL 1.1 Mesa 21.3.5) - Platform #2 [Mesa]
========================================================

Benchmark relevant options:
===========================
* --optimized-kernel-enable

-------------------
* Hash-Mode 0 (MD5)
-------------------

Speed.#1.........:   215.5 MH/s (19.32ms) @ Accel:512 Loops:1024 Thr:1 Vec:4

Started: Mon Feb 14 03:05:08 2022
Stopped: Mon Feb 14 03:05:21 2022


EDIT:

Okay, it's working on my 2nd gen i7. So, if you were still wondering or for anyone reading this in the future, CPU Hashcat cracking works at least back to 2nd generation Intel Core processors. There is a big step between 1st and 2nd gen, so I can't speak for 1st generation. This was done, btw, in Garuda KDE Dragonized Edition, which is pretty much just Arch configured nicely by someone else but me, with the intel-opencl-runtime package installed from the AUR and, of course hashcat and hashcat-utils.

2nd gen benchmark:

╭─user@xaruda in ~/.work took 49ms
╰─λ hashcat -m 0 -b
hashcat (v6.2.5) starting in benchmark mode

Benchmarking uses hand-optimized kernel code by default.
You can use it in your cracking session by setting the -O option.
Note: Using optimized kernel code limits the maximum supported password length.
To disable the optimized kernel code in benchmark mode, use the -w option.

clGetDeviceIDs(): CL_DEVICE_NOT_FOUND

clGetDeviceIDs(): CL_DEVICE_NOT_FOUND

OpenCL API (OpenCL 2.1 LINUX) - Platform #1 [Intel(R) Corporation]
==================================================================
* Device #1: Intel(R) Core(TM) i7-2820QM CPU @ 2.30GHz, 8905/17874 MB (2234 MB allocatab
le), 8MCU

OpenCL API (OpenCL 1.1 Mesa 21.3.5) - Platform #2 [Mesa]
========================================================

Benchmark relevant options:
===========================
* --optimized-kernel-enable

-------------------
* Hash-Mode 0 (MD5)
------------------- 



Speed.#1.........:   231.7 MH/s (36.06ms) @ Accel:1024 Loops:1024 Thr:1 Vec:4

Started: Mon Feb 14 21:49:08 2022
Stopped: Mon Feb 14 21:49:27 2022
Reply
#7
CPU only (option -D1) should work always, even on AMD CPU with installed Intel Linux Runtime ( 18.1 directly taken from the intel homepage)

the problem is the intel integrated gpu which runtime is broken
Reply
#8
on Windows it is possible to use Intel GPU with Hashcat v5.1.0 using option -D 2 --force
Please see https://hashcat.net/forum/thread-10548-post-54363.html
Reply
#9
(02-21-2022, 09:56 AM)v71221 Wrote: on Windows it is possible to use Intel GPU with Hashcat v5.1.0 using option -D 2 --force
Please see https://hashcat.net/forum/thread-10548-post-54363.html

Please stop advising people to use --force.
Reply