[SOLVED] Hardware support: AMD FirePro
#1
Great job for supporting different types of GPUs.
It would be great if you can support OpenCL GPUs processing by AMD FirePro cards.

I have AMD FirePro V5900 on Linux which use AMD Proprietary Linux x86 Display Driver V 9.0 (http://support.amd.com/us/gpudownload/fi...linux.aspx)

Hahcat-plus call from example script shows Segmentation fault.
Other outputs:
Code:
./oclHashcat-plus64.bin -t 32 -a 7 example0.hash ?a?a?a?a example.dict --gpu-temp-disable

oclHashcat-plus v0.14 by atom starting...

Hashes: 6494 total, 1 unique salts, 6494 unique digests
Bitmaps: 16 bits, 65536 entries, 0x0000ffff mask, 262144 bytes
Workload: 256 loops, 80 accel
Watchdog: Temperature abort trigger disabled
Watchdog: Temperature retain trigger disabled
Device #1: Cayman, 1024MB, 600Mhz, 8MCU


STOP! Unsupported or bad installed GPU driver version detected!

Also with --force option:
Code:
oclHashcat-plus v0.14 by atom starting...

Hashes: 6494 total, 1 unique salts, 6494 unique digests
Bitmaps: 16 bits, 65536 entries, 0x0000ffff mask, 262144 bytes
Workload: 256 loops, 80 accel
Watchdog: Temperature abort trigger disabled
Watchdog: Temperature retain trigger disabled
Device #1: Cayman, 1024MB, 600Mhz, 8MCU
Device #1: Kernel ./kernels/4098/m0000_a1.Cayman_1124.2_1124.2.kernel not found in cache! Building may take a while...
ERROR: ./kernels/4098/m0000_a1.VLIW4.llvmir: No such file or directory

Tests with JavaOpenCL (JOCL) has passed, winch means that driver support OpenCL correctly.
#2
JOCL device info:
Code:
--- Info for device Cayman: ---
CL_DEVICE_NAME:                         Cayman
CL_DEVICE_VENDOR:                       Advanced Micro Devices, Inc.
CL_DRIVER_VERSION:                      1124.2
CL_DEVICE_TYPE:                         CL_DEVICE_TYPE_GPU
CL_DEVICE_MAX_COMPUTE_UNITS:            8
CL_DEVICE_MAX_WORK_ITEM_DIMENSIONS:     3
CL_DEVICE_MAX_WORK_ITEM_SIZES:          256 / 256 / 256
CL_DEVICE_MAX_WORK_GROUP_SIZE:          256
CL_DEVICE_MAX_CLOCK_FREQUENCY:          600 MHz
CL_DEVICE_ADDRESS_BITS:                 32
CL_DEVICE_MAX_MEM_ALLOC_SIZE:           256 MByte
CL_DEVICE_GLOBAL_MEM_SIZE:              1024 MByte
CL_DEVICE_ERROR_CORRECTION_SUPPORT:     no
CL_DEVICE_LOCAL_MEM_TYPE:               local
CL_DEVICE_LOCAL_MEM_SIZE:               32 KByte
CL_DEVICE_MAX_CONSTANT_BUFFER_SIZE:     64 KByte
CL_DEVICE_QUEUE_PROPERTIES:             CL_QUEUE_PROFILING_ENABLE
CL_DEVICE_IMAGE_SUPPORT:                1
CL_DEVICE_MAX_READ_IMAGE_ARGS:          128
CL_DEVICE_MAX_WRITE_IMAGE_ARGS:         8
CL_DEVICE_SINGLE_FP_CONFIG:             CL_FP_INF_NAN CL_FP_ROUND_TO_NEAREST CL_FP_ROUND_TO_ZERO CL_FP_ROUND_TO_INF CL_FP_FMA CL_FP_CORRECTLY_ROUNDED_DIVIDE_SQRT
CL_DEVICE_2D_MAX_WIDTH                  16384
CL_DEVICE_2D_MAX_HEIGHT                 16384
CL_DEVICE_3D_MAX_WIDTH                  2048
CL_DEVICE_3D_MAX_HEIGHT                 2048
CL_DEVICE_3D_MAX_DEPTH                  2048
CL_DEVICE_PREFERRED_VECTOR_WIDTH_<t>    CHAR 16, SHORT 8, INT 4, LONG 2, FLOAT 4, DOUBLE 2

Benchmark script give next output:
Code:
Tue Jun 11 13:10:56 CEST 2013
Linux distl 2.6.32-358.6.2.el6.x86_64 #1 SMP Thu May 16 20:59:36 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux

********************************************************************************

Number of platforms:                 1
  Platform Profile:                 FULL_PROFILE
  Platform Version:                 OpenCL 1.2 AMD-APP (1124.2)
  Platform Name:                 AMD Accelerated Parallel Processing
  Platform Vendor:                 Advanced Micro Devices, Inc.
  Platform Extensions:                 cl_khr_icd cl_amd_event_callback cl_amd_offline_devices


  Platform Name:                 AMD Accelerated Parallel Processing
Number of devices:                 2
  Device Type:                     CL_DEVICE_TYPE_GPU
  Device ID:                     4098
  Board name:                    
  Device Topology:                 PCI[ B#2, D#0, F#0 ]
  Max compute units:                 8
  Max work items dimensions:             3
    Max work items[0]:                 256
    Max work items[1]:                 256
    Max work items[2]:                 256
  Max work group size:                 256
  Preferred vector width char:             16
  Preferred vector width short:             8
  Preferred vector width int:             4
  Preferred vector width long:             2
  Preferred vector width float:             4
  Preferred vector width double:         2
  Native vector width char:             16
  Native vector width short:             8
  Native vector width int:             4
  Native vector width long:             2
  Native vector width float:             4
  Native vector width double:             2
  Max clock frequency:                 600Mhz
  Address bits:                     32
  Max memory allocation:             268435456
  Image support:                 Yes
  Max number of images read arguments:         128
  Max number of images write arguments:         8
  Max image 2D width:                 16384
  Max image 2D height:                 16384
  Max image 3D width:                 2048
  Max image 3D height:                 2048
  Max image 3D depth:                 2048
  Max samplers within kernel:             16
  Max size of kernel argument:             1024
  Alignment (bits) of base address:         2048
  Minimum alignment (bytes) for any datatype:     128
  Single precision floating point capability
    Denorms:                     No
    Quiet NaNs:                     Yes
    Round to nearest even:             Yes
    Round to zero:                 Yes
    Round to +ve and infinity:             Yes
    IEEE754-2008 fused multiply-add:         Yes
  Cache type:                     None
  Cache line size:                 0
  Cache size:                     0
  Global memory size:                 1073741824
  Constant buffer size:                 65536
  Max number of constant args:             8
  Local memory type:                 Scratchpad
  Local memory size:                 32768
  Kernel Preferred work group size multiple:     64
  Error correction support:             0
  Unified memory for Host and Device:         0
  Profiling timer resolution:             1
  Device endianess:                 Little
  Available:                     Yes
  Compiler available:                 Yes
  Execution capabilities:                
    Execute OpenCL kernels:             Yes
    Execute native function:             No
  Queue properties:                
    Out-of-Order:                 No
    Profiling :                     Yes
  Platform ID:                     0x00007f803e9d4e80
  Name:                         Cayman
  Vendor:                     Advanced Micro Devices, Inc.
  Device OpenCL C version:             OpenCL C 1.2
  Driver version:                 1124.2
  Profile:                     FULL_PROFILE
  Version:                     OpenCL 1.2 AMD-APP (1124.2)
  Extensions:                     cl_khr_fp64 cl_amd_fp64 cl_khr_global_int32_base_atomics cl_khr_global_int32_extended_atomics cl_khr_local_int32_base_atomics cl_khr_local_int32_extended_atomics cl_khr_3d_image_writes cl_khr_byte_addressable_store cl_khr_gl_sharing cl_ext_atomic_counters_32 cl_amd_device_attribute_query cl_amd_vec3 cl_amd_printf cl_amd_media_ops cl_amd_media_ops2 cl_amd_popcnt


  Device Type:                     CL_DEVICE_TYPE_CPU
  Device ID:                     4098
  Board name:                    
  Max compute units:                 12
  Max work items dimensions:             3
    Max work items[0]:                 1024
    Max work items[1]:                 1024
    Max work items[2]:                 1024
  Max work group size:                 1024
  Preferred vector width char:             16
  Preferred vector width short:             8
  Preferred vector width int:             4
  Preferred vector width long:             2
  Preferred vector width float:             4
  Preferred vector width double:         2
  Native vector width char:             16
  Native vector width short:             8
  Native vector width int:             4
  Native vector width long:             2
  Native vector width float:             4
  Native vector width double:             2
  Max clock frequency:                 2395Mhz
  Address bits:                     64
  Max memory allocation:             4178681856
  Image support:                 Yes
  Max number of images read arguments:         128
  Max number of images write arguments:         8
  Max image 2D width:                 8192
  Max image 2D height:                 8192
  Max image 3D width:                 2048
  Max image 3D height:                 2048
  Max image 3D depth:                 2048
  Max samplers within kernel:             16
  Max size of kernel argument:             4096
  Alignment (bits) of base address:         1024
  Minimum alignment (bytes) for any datatype:     128
  Single precision floating point capability
    Denorms:                     Yes
    Quiet NaNs:                     Yes
    Round to nearest even:             Yes
    Round to zero:                 Yes
    Round to +ve and infinity:             Yes
    IEEE754-2008 fused multiply-add:         Yes
  Cache type:                     Read/Write
  Cache line size:                 64
  Cache size:                     32768
  Global memory size:                 16714727424
  Constant buffer size:                 65536
  Max number of constant args:             8
  Local memory type:                 Global
  Local memory size:                 32768
  Kernel Preferred work group size multiple:     1
  Error correction support:             0
  Unified memory for Host and Device:         1
  Profiling timer resolution:             1
  Device endianess:                 Little
  Available:                     Yes
  Compiler available:                 Yes
  Execution capabilities:                
    Execute OpenCL kernels:             Yes
    Execute native function:             Yes
  Queue properties:                
    Out-of-Order:                 No
    Profiling :                     Yes
  Platform ID:                     0x00007f803e9d4e80
  Name:                         Intel(R) Xeon(R) CPU           E5645  @ 2.40GHz
  Vendor:                     GenuineIntel
  Device OpenCL C version:             OpenCL C 1.2
  Driver version:                 1124.2 (sse2)
  Profile:                     FULL_PROFILE
  Version:                     OpenCL 1.2 AMD-APP (1124.2)
  Extensions:                     cl_khr_fp64 cl_amd_fp64 cl_khr_global_int32_base_atomics cl_khr_global_int32_extended_atomics cl_khr_local_int32_base_atomics cl_khr_local_int32_extended_atomics cl_khr_int64_base_atomics cl_khr_int64_extended_atomics cl_khr_3d_image_writes cl_khr_byte_addressable_store cl_khr_gl_sharing cl_ext_device_fission cl_amd_device_attribute_query cl_amd_vec3 cl_amd_printf cl_amd_media_ops cl_amd_media_ops2 cl_amd_popcnt



********************************************************************************
#3
Oh sorry, I have just find-out that file m0000_a1.VLIW4.llvmir is at root of oclHashcat folder not in /kernels/4098/
After moving to /kernels/4098/m0000_a1.VLIW4.llvmir now it works great with both --gpu-temp-disable and --force options.

Solution is to copy all m* files to /kernels/4098/ folder.
#4
you must extract the hashcat archive with '7z x' instead of '7z e'