FPGA "no compiler is available" error
#1
I tried running hashcat on an Intel/Altera FPGA to see what the performance would be like, but I'm getting the error below. Any advice on what to do to make it work?
(when I run --bench, the same errors are printed out and the device is skipped)

Also, has anyone successfully gotten hashcat to work with FPGAs? I saw some posts with discussions, but did not see anyone saying that they got it working.

Code:
hashcat64.exe -I
hashcat (v4.0.1) starting...

* Device #2: No compiler is available for this device.

* Device #2: This device does not support base atomics.

* Device #2: This device's local mem size is too small.

OpenCL Info:

Platform ID #1
 Vendor  : NVIDIA Corporation
 Name    : NVIDIA CUDA
 Version : OpenCL 1.2 CUDA 9.0.103

 Device ID #1
   Type           : GPU
   Vendor ID      : 32
   Vendor         : NVIDIA Corporation
   Name           : Quadro K4200
   Version        : OpenCL 1.2 CUDA
   Processor(s)   : 7
   Clock          : 784
   Memory         : 1024/4096 MB allocatable
   OpenCL Version : OpenCL C 1.2
   Driver Version : 384.76

Platform ID #2
 Vendor  : Intel(R) Corporation
 Name    : Intel(R) FPGA SDK for OpenCL(TM)
 Version : OpenCL 1.0 Intel(R) FPGA SDK for OpenCL(TM), Version 17.0

 Device ID #2
   Type           : Accelerator
   Vendor ID      : 8
   Vendor         : Intel(R) Corporation
   Name           : a10gx : Arria 10 Reference Platform (acla10_ref0)
   Version        : OpenCL 1.0 Intel(R) FPGA SDK for OpenCL(TM), Version 17.0
   Processor(s)   : 1
   Clock          : 1000
   Memory         : 2047/2048 MB allocatable
   OpenCL Version : OpenCL C 1.0
   Driver Version : 17.0
Reply
#2
We (Sagitta HPC/Terahash) looked into doing OpenCL on Altera FPGA back in 2015 and there were several severe limitations and drawbacks.

The first big issue, which you are running into now, is that there is no JIT compiler. You would need to pre-compile the kernels and then patch Hashcat to load the binary kernels (which is the way oclHashcat used to work before we went open source and switched to JIT compiling.)

The second biggest issue was the driver. Now, this may have changed with Intel's acquisition of Altera. But at the time, driver (1) used an ancient ABI and would only compile on CentOS 5, and (2) could only support one thread.

We got md5stress and oclGaussCrack to work with Altera's OpenCL, but the task of getting Hashcat to work seemed like a massive undertaking, and we shelved it until the state of OpenCL on FPGA improves.
Reply
#3
Thanks for the information epixoip.

Since my goal was to just benchmark the performance for my own interest (and to share the results), I won't be putting in the effort to pre-compile kernels, patch hashcat, etc. Hopefully the state of things improves in the future.
Reply