AMD HIP support
#1
Hello.

I'm using RX 470 (Polaris10-Ellesmere) card with Windows 11 (22000.348) and latest 21.12.1 drivers with HIP 4.4 runtime inside.

Unfortunately, hashcat v6.2.5 broke compatibility reporting this error:

hipDeviceGetAttribute(): 1

I also tried v6.2.5+19 beta with the exact same results.

hashcat v6.2.3 doesn't see HIP 4.4 backend of 21.12.1 drivers at all.

But fortunately, hashcat v6.2.4 is working fine - but not for all hashes/ algorithms.

A quick comparison for OpenCL vs HIP using hashcat v6.2.4 and 21.12.1 drivers (Win 11)

HIP API (HIP 4.4)
=================
* Device #1: Radeon (TM) RX 470 Graphics, 8064/8192 MB, 32MCU

---------------------
* Hash-Mode 900 (MD4)
---------------------

Speed.#1.........: 22190.4 MH/s (95.47ms) @ Accel:2048 Loops:512 Thr:64 Vec:1


-----------------------
* Hash-Mode 1000 (NTLM)
-----------------------

Speed.#1.........: 22205.8 MH/s (95.47ms) @ Accel:256 Loops:512 Thr:512 Vec:1


---------------------
* Hash-Mode 3000 (LM)
---------------------

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


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

Speed.#1.........: 11500.4 MH/s (92.61ms) @ Accel:256 Loops:512 Thr:256 Vec:1


The plugin 2500 is deprecated and was replaced with plugin 22000. For more details, please read: https://hashcat.net/forum/thread-10253.html

------------------------------------------------------
* Hash-Mode 2500 (WPA-EAPOL-PBKDF2) [Iterations: 4095]
------------------------------------------------------

* Device #1: ATTENTION! HIP kernel self-test failed.

Your device driver installation is probably broken.
See also: https://hashcat.net/faq/wrongdriver

Speed.#1.........:  191.5 kH/s (81.13ms) @ Accel:64 Loops:256 Thr:128 Vec:1


---------------------------------------------
* Hash-Mode 11600 (7-Zip) [Iterations: 16384]
---------------------------------------------

Kernel minimum runtime larger than default TDR

Speed.#1.........:        0 H/s (2524.93ms) @ Accel:0 Loops:0 Thr:0 Vec:1


------------------------------------------------------
* Hash-Mode 9600 (MS Office 2013) [Iterations: 100000]
------------------------------------------------------


------------------------------------------------------
* Hash-Mode 9500 (MS Office 2010) [Iterations: 100000]
------------------------------------------------------

Speed.#1.........:    32647 H/s (81.61ms) @ Accel:64 Loops:512 Thr:256 Vec:1


----------------------------------------------------------------------
* Hash-Mode 10700 (PDF 1.7 Level 8 (Acrobat 10 - 11)) [Iterations: 64]
----------------------------------------------------------------------

* Device #1: ATTENTION! HIP kernel self-test failed.

Your device driver installation is probably broken.
See also: https://hashcat.net/faq/wrongdriver

Speed.#1.........:    13513 H/s (74.76ms) @ Accel:2 Loops:1 Thr:1024 Vec:1


---------------------------
* Hash-Mode 1700 (SHA2-512)
---------------------------

Speed.#1.........:  497.0 MH/s (67.31ms) @ Accel:64 Loops:256 Thr:64 Vec:1


-------------------------
* Hash-Mode 11500 (CRC32)
-------------------------

Speed.#1.........: 21330.6 MH/s (49.86ms) @ Accel:256 Loops:512 Thr:256 Vec:1


------------------------------------------------
* Hash-Mode 12500 (RAR3-hp) [Iterations: 262144]
------------------------------------------------

Speed.#1.........:    1874 H/s (1073.21ms) @ Accel:16 Loops:16384 Thr:64 Vec:1


--------------------------------------------
* Hash-Mode 13000 (RAR5) [Iterations: 32799]
--------------------------------------------

Speed.#1.........:    21777 H/s (92.41ms) @ Accel:32 Loops:256 Thr:256 Vec:1

--------------------------------------
* Hash-Mode 17200 (PKZIP (Compressed))
--------------------------------------

* Device #1: ATTENTION! HIP kernel self-test failed.

Your device driver installation is probably broken.
See also: https://hashcat.net/faq/wrongdriver

Speed.#1.........:  504.3 MH/s (41.37ms) @ Accel:20 Loops:512 Thr:64 Vec:1



VS


OpenCL API (OpenCL 2.1 AMD-APP (3354.13)) - Platform #1 [Advanced Micro Devices, Inc.]
======================================================================================
* Device #2: Radeon (TM) RX 470 Graphics, 8064/8192 MB (6745 MB allocatable), 32MCU


---------------------
* Hash-Mode 900 (MD4)
---------------------

Speed.#2.........: 18139.4 MH/s (58.27ms) @ Accel:128 Loops:1024 Thr:256 Vec:1


-----------------------
* Hash-Mode 1000 (NTLM)
-----------------------

Speed.#2.........: 18145.1 MH/s (58.27ms) @ Accel:1024 Loops:512 Thr:64 Vec:1

---------------------
* Hash-Mode 3000 (LM)
---------------------

Speed.#2.........: 11162.4 MH/s (95.02ms) @ Accel:128 Loops:1024 Thr:256 Vec:1


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

Speed.#2.........: 11500.5 MH/s (92.31ms) @ Accel:512 Loops:1024 Thr:64 Vec:1


The plugin 2500 is deprecated and was replaced with plugin 22000. For more details, please read: https://hashcat.net/forum/thread-10253.html

------------------------------------------------------
* Hash-Mode 2500 (WPA-EAPOL-PBKDF2) [Iterations: 4095]
------------------------------------------------------

Speed.#2.........:  138.3 kH/s (86.00ms) @ Accel:64 Loops:256 Thr:128 Vec:1


---------------------------------------------
* Hash-Mode 11600 (7-Zip) [Iterations: 16384]
---------------------------------------------

Speed.#2.........:    83410 H/s (73.95ms) @ Accel:8 Loops:4096 Thr:256 Vec:1


------------------------------------------------------
* Hash-Mode 9600 (MS Office 2013) [Iterations: 100000]
------------------------------------------------------

* Device #2: ATTENTION! OpenCL kernel self-test failed.

Your device driver installation is probably broken.
See also: https://hashcat.net/faq/wrongdriver

Speed.#2.........:    3969 H/s (84.02ms) @ Accel:512 Loops:256 Thr:256 Vec:1


------------------------------------------------------
* Hash-Mode 9500 (MS Office 2010) [Iterations: 100000]
------------------------------------------------------

Speed.#2.........:    26643 H/s (85.68ms) @ Accel:128 Loops:256 Thr:256 Vec:1


----------------------------------------------------------------------
* Hash-Mode 10700 (PDF 1.7 Level 8 (Acrobat 10 - 11)) [Iterations: 64]
----------------------------------------------------------------------

Speed.#2.........:      375 H/s (291.86ms) @ Accel:1 Loops:1 Thr:256 Vec:1


---------------------------
* Hash-Mode 1700 (SHA2-512)
---------------------------

Speed.#2.........:  394.1 MH/s (84.29ms) @ Accel:128 Loops:128 Thr:64 Vec:1



-------------------------
* Hash-Mode 11500 (CRC32)
-------------------------

Speed.#2.........:  2978.3 MH/s (89.27ms) @ Accel:64 Loops:1024 Thr:128 Vec:1


------------------------------------------------
* Hash-Mode 12500 (RAR3-hp) [Iterations: 262144]
------------------------------------------------

Speed.#2.........:    19908 H/s (78.65ms) @ Accel:4 Loops:16384 Thr:256 Vec:1


--------------------------------------------
* Hash-Mode 13000 (RAR5) [Iterations: 32799]
--------------------------------------------

Speed.#2.........:    18236 H/s (49.53ms) @ Accel:128 Loops:128 Thr:64 Vec:1


--------------------------------------
* Hash-Mode 17200 (PKZIP (Compressed))
--------------------------------------

* Device #2: Skipping hash-mode 17200)
            This is due to a known CUDA/HIP/OpenCL runtime/driver issue (not a hashcat issue)
            You can use --force to override, but do not report related errors.



@atom

Just tell me if you want full benchmark results
Reply
#2
Windows HIP and Linux HIP are not compatible yet. AMD is working on a solution, but till they manage to synchronize some specific programming headers, hashcat can only work on either Windows or Linux. I've switched hashcat to work with Linux in 6.2.5 since I moved my AMD testing GPU from a Windows Box to a Linux Box. In the meanwhile on Windows you can use OpenCL.
Reply
#3
Just to make sure I understand @atom answer.
We can't use HIP API with AMD GPUs on Windows?
the only support is for OpenCL?
Reply
#4
(12-06-2021, 11:36 AM)Nikos Wrote: Hello.

I'm using RX 470 (Polaris10-Ellesmere) card with Windows 11 (22000.348) and latest 21.12.1 drivers with HIP 4.4 runtime inside.

Unfortunately, hashcat v6.2.5 broke compatibility reporting this error:

hipDeviceGetAttribute(): 1

I also tried v6.2.5+19 beta with the exact same results.

hashcat v6.2.3 doesn't see HIP 4.4 backend of 21.12.1 drivers at all.

But fortunately, hashcat v6.2.4 is working fine - but not for all hashes/ algorithms.

A quick comparison for OpenCL vs HIP using hashcat v6.2.4 and 21.12.1 drivers (Win 11)

HIP API (HIP 4.4)
=================
* Device #1: Radeon (TM) RX 470 Graphics, 8064/8192 MB, 32MCU

---------------------
* Hash-Mode 900 (MD4)
---------------------

Speed.#1.........: 22190.4 MH/s (95.47ms) @ Accel:2048 Loops:512 Thr:64 Vec:1


-----------------------
* Hash-Mode 1000 (NTLM)
-----------------------

Speed.#1.........: 22205.8 MH/s (95.47ms) @ Accel:256 Loops:512 Thr:512 Vec:1


---------------------
* Hash-Mode 3000 (LM)
---------------------

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


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

Speed.#1.........: 11500.4 MH/s (92.61ms) @ Accel:256 Loops:512 Thr:256 Vec:1


The plugin 2500 is deprecated and was replaced with plugin 22000. For more details, please read: https://hashcat.net/forum/thread-10253.html

------------------------------------------------------
* Hash-Mode 2500 (WPA-EAPOL-PBKDF2) [Iterations: 4095]
------------------------------------------------------

* Device #1: ATTENTION! HIP kernel self-test failed.

Your device driver installation is probably broken.
See also: https://hashcat.net/faq/wrongdriver

Speed.#1.........:  191.5 kH/s (81.13ms) @ Accel:64 Loops:256 Thr:128 Vec:1


---------------------------------------------
* Hash-Mode 11600 (7-Zip) [Iterations: 16384]
---------------------------------------------

Kernel minimum runtime larger than default TDR

Speed.#1.........:        0 H/s (2524.93ms) @ Accel:0 Loops:0 Thr:0 Vec:1


------------------------------------------------------
* Hash-Mode 9600 (MS Office 2013) [Iterations: 100000]
------------------------------------------------------


------------------------------------------------------
* Hash-Mode 9500 (MS Office 2010) [Iterations: 100000]
------------------------------------------------------

Speed.#1.........:    32647 H/s (81.61ms) @ Accel:64 Loops:512 Thr:256 Vec:1


----------------------------------------------------------------------
* Hash-Mode 10700 (PDF 1.7 Level 8 (Acrobat 10 - 11)) [Iterations: 64]
----------------------------------------------------------------------

* Device #1: ATTENTION! HIP kernel self-test failed.

Your device driver installation is probably broken.
See also: https://hashcat.net/faq/wrongdriver

Speed.#1.........:    13513 H/s (74.76ms) @ Accel:2 Loops:1 Thr:1024 Vec:1


---------------------------
* Hash-Mode 1700 (SHA2-512)
---------------------------

Speed.#1.........:  497.0 MH/s (67.31ms) @ Accel:64 Loops:256 Thr:64 Vec:1


-------------------------
* Hash-Mode 11500 (CRC32)
-------------------------

Speed.#1.........: 21330.6 MH/s (49.86ms) @ Accel:256 Loops:512 Thr:256 Vec:1


------------------------------------------------
* Hash-Mode 12500 (RAR3-hp) [Iterations: 262144]
------------------------------------------------

Speed.#1.........:    1874 H/s (1073.21ms) @ Accel:16 Loops:16384 Thr:64 Vec:1


--------------------------------------------
* Hash-Mode 13000 (RAR5) [Iterations: 32799]
--------------------------------------------

Speed.#1.........:    21777 H/s (92.41ms) @ Accel:32 Loops:256 Thr:256 Vec:1

--------------------------------------
* Hash-Mode 17200 (PKZIP (Compressed))
--------------------------------------

* Device #1: ATTENTION! HIP kernel self-test failed.

Your device driver installation is probably broken.
See also: https://hashcat.net/faq/wrongdriver

Speed.#1.........:  504.3 MH/s (41.37ms) @ Accel:20 Loops:512 Thr:64 Vec:1



VS


OpenCL API (OpenCL 2.1 AMD-APP (3354.13)) - Platform #1 [Advanced Micro Devices, Inc.]
======================================================================================
* Device #2: Radeon (TM) RX 470 Graphics, 8064/8192 MB (6745 MB allocatable), 32MCU


---------------------
* Hash-Mode 900 (MD4)
---------------------

Speed.#2.........: 18139.4 MH/s (58.27ms) @ Accel:128 Loops:1024 Thr:256 Vec:1


-----------------------
* Hash-Mode 1000 (NTLM)
-----------------------

Speed.#2.........: 18145.1 MH/s (58.27ms) @ Accel:1024 Loops:512 Thr:64 Vec:1

---------------------
* Hash-Mode 3000 (LM)
---------------------

Speed.#2.........: 11162.4 MH/s (95.02ms) @ Accel:128 Loops:1024 Thr:256 Vec:1


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

Speed.#2.........: 11500.5 MH/s (92.31ms) @ Accel:512 Loops:1024 Thr:64 Vec:1


The plugin 2500 is deprecated and was replaced with plugin 22000. For more details, please read: https://hashcat.net/forum/thread-10253.html

------------------------------------------------------
* Hash-Mode 2500 (WPA-EAPOL-PBKDF2) [Iterations: 4095]
------------------------------------------------------

Speed.#2.........:  138.3 kH/s (86.00ms) @ Accel:64 Loops:256 Thr:128 Vec:1


---------------------------------------------
* Hash-Mode 11600 (7-Zip) [Iterations: 16384]
---------------------------------------------

Speed.#2.........:    83410 H/s (73.95ms) @ Accel:8 Loops:4096 Thr:256 Vec:1


------------------------------------------------------
* Hash-Mode 9600 (MS Office 2013) [Iterations: 100000]
------------------------------------------------------

* Device #2: ATTENTION! OpenCL kernel self-test failed.

Your device driver installation is probably broken.
See also: https://hashcat.net/faq/wrongdriver

Speed.#2.........:    3969 H/s (84.02ms) @ Accel:512 Loops:256 Thr:256 Vec:1


------------------------------------------------------
* Hash-Mode 9500 (MS Office 2010) [Iterations: 100000]
------------------------------------------------------

Speed.#2.........:    26643 H/s (85.68ms) @ Accel:128 Loops:256 Thr:256 Vec:1


----------------------------------------------------------------------
* Hash-Mode 10700 (PDF 1.7 Level 8 (Acrobat 10 - 11)) [Iterations: 64]
----------------------------------------------------------------------

Speed.#2.........:      375 H/s (291.86ms) @ Accel:1 Loops:1 Thr:256 Vec:1


---------------------------
* Hash-Mode 1700 (SHA2-512)
---------------------------

Speed.#2.........:  394.1 MH/s (84.29ms) @ Accel:128 Loops:128 Thr:64 Vec:1



-------------------------
* Hash-Mode 11500 (CRC32)
-------------------------

Speed.#2.........:  2978.3 MH/s (89.27ms) @ Accel:64 Loops:1024 Thr:128 Vec:1


------------------------------------------------
* Hash-Mode 12500 (RAR3-hp) [Iterations: 262144]
------------------------------------------------

Speed.#2.........:    19908 H/s (78.65ms) @ Accel:4 Loops:16384 Thr:256 Vec:1


--------------------------------------------
* Hash-Mode 13000 (RAR5) [Iterations: 32799]
--------------------------------------------

Speed.#2.........:    18236 H/s (49.53ms) @ Accel:128 Loops:128 Thr:64 Vec:1


--------------------------------------
* Hash-Mode 17200 (PKZIP (Compressed))
--------------------------------------

* Device #2: Skipping hash-mode 17200)
            This is due to a known CUDA/HIP/OpenCL runtime/driver issue (not a hashcat issue)
            You can use --force to override, but do not report related errors.



@atom

Just tell me if you want full benchmark results

Hi, I have same series GPU(polaris), found that on windows with opencl GPU play with zip files is a suffer, almost all kind -m 172xx of types cannot work, tried some version drivers, no effect, are you same?
Reply
#5
(06-14-2022, 05:11 PM)ttgoa Wrote: Just to make sure I understand @atom answer.
We can't use HIP API with AMD GPUs on Windows?
the only support is for OpenCL?

as far is i understand yes

hashcat is developed on linux, regarding CUDA this makes no difference but as atoms answer implies Windows HIP and Linux HIP are not compatible with each other, but when developing with linux hip headers these are incompatible with windows

the only way would be maintaining an own windows HIP branch for hashcat and i can understand why atom dont want this extra work, because the problem was set by AMD
Reply
#6
(09-08-2022, 04:46 PM)Snoopy Wrote:
(06-14-2022, 05:11 PM)ttgoa Wrote: Just to make sure I understand @atom answer.
We can't use HIP API with AMD GPUs on Windows?
the only support is for OpenCL?

as far is i understand yes

hashcat is developed on linux, regarding CUDA this makes no difference but as atoms answer implies Windows HIP and Linux HIP are not compatible with each other, but when developing with linux hip headers these are incompatible with windows

the only way would be maintaining an own windows HIP branch for hashcat and i can understand why atom dont want this extra work, because the problem was set by AMD

Just an advice, since AMD on windows is broken on hashcat, you should paste a notice or someting obviously on hashcat HP, leadiing people directly go to linux, save life
Reply
#7
The Heterogeneous Interface for Portability (HIP) is AMD's dedicated GPU programming environment for designing high performance kernels on GPU hardware.
Reply
#8
(09-11-2022, 04:48 PM)Sunnydas1 Wrote: The Heterogeneous Interface for Portability (HIP) is AMD's dedicated GPU programming environment for designing high performance kernels on GPU hardware.

seems AMD has a different perception of the meaning heterogenous and portability ^^
Reply
#9
(09-11-2022, 04:48 PM)Sunnydas1 Wrote: The Heterogeneous Interface for Portability (HIP) is AMD's dedicated GPU programming environment for designing high performance kernels on GPU hardware.
Reply