Skip to content

Instantly share code, notes, and snippets.

@roycewilliams
Last active July 26, 2019 19:07
Show Gist options
  • Star 2 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save roycewilliams/5ac28350023613c614034c7fb6ba715d to your computer and use it in GitHub Desktop.
Save roycewilliams/5ac28350023613c614034c7fb6ba715d to your computer and use it in GitHub Desktop.
hashcat-opencl-memory-allocatable.txt
#----------------------------------------------------------------------
# Survey of known allocatable memory as reported to hashcat by OpenCL.
# Varies by OpenCL runtime family (NVIDIA, AMD, Intel, pocl, etc.) and version.
# Triggered by curiosity about OpenCL maximum memory allocation.
# Compiled by Royce Williams / @tychotithonus
# As referenced in https://devtalk.nvidia.com/default/topic/992502/cuda-programming-and-performance/why-is-cl_device_max_mem_alloc_size-never-larger-than-25-of-cl_device_global_mem_size-only-on-nvidia-/
#
# Please send new entries (even with minor variations) to royce@techsolvency.com
#----------------------------------------------------------------------
# Commentary:
#
# In the OpenCL specification:
#
# https://www.khronos.org/registry/OpenCL/specs/opencl-1.2.pdf
#
# ... the CL_DEVICE_MAX_MEM_ALLOC_SIZE value controls how much GPU memory is available for allocation. Quoting the spec:
#
# "CL_DEVICE_MAX_MEM_ALLOC_SIZE - Max size of memory object allocation in bytes. The minimum value is max (1/4th of CL_DEVICE_GLOBAL_MEM_SIZE, 128*1024*1024) for devices that are not of type CL_DEVICE_TYPE_CUSTOM."
#
# This phrasing is potentially confusing, Paraphrased, it says:
#
# "When implementing OpenCL, CL_DEVICE_MAX_MEM_ALLOC_SIZE must be set in order to inform applications about maximum allocatable memory. To be compliant with this specification, this maximum must be either either one fourth of the device's physical memory (CL_DEVICE_GLOBAL_MEM_SIZE) or 128 binary megabytes, whichever is greater."
#
# This defines the minimum for CL_DEVICE_MAX_MEM_ALLOC_SIZE. The specification does not define how to calculate a maximum for CL_DEVICE_MAX_MEM_ALLOC_SIZE.
#
# In most (if not all) NVIDIA OpenCL implementations, this value appears to be applied as a *maximum* for allocatable memory.
# For all known NVIDIA OpenCL-compatible cards in this survey, allocatable memory appears to be artificially constrained to only 25% of physical memory. It is sometimes less, but it appears to *never* be more.
#
# By contrast, some AMD and Intel implementations appear to work from a higher limit, 2.7 or 2.8 out of 4 GB, or sometimes close to 100% of physical memory. Some pocl implementations also appear to make the maximum physical amount fully available for OpenCL.
#
#----------------------------------------------------------------------
# List of known device allocatable memory reports.
# Line items that differ from the 25% rule are prefixed with:
# + (more than 25%)
# - (less than 25%)
#
# An Internet search for the full quoted string will locate the context
# of the original report.
GeForce GTX 480, 384/1536 MB allocatable
GeForce GT 525M, 512/2048 MB allocatable
GeForce GTX 560 Ti, 255/1023 MB allocatable
GeForce GTX 560 Ti, 256/1024 MB allocatable
GeForce GTX 570, 320/1280 MB allocatable
GeForce GTX 650, 256/1024 MB allocatable
GeForce GT 650M, 128/512 MB allocatable
GeForce GTX 660M, 128/512 MB allocatable
GeForce GT 710, 256/1024 MB allocatable
GeForce GT 710, 511/2047 MB allocatable
GeForce GT 750M, 256/1024 MB allocatable
GeForce GT 750M, 512/2048 MB allocatable
GeForce GTX 750 Ti, 499/1999 MB allocatable
GeForce GTX 750 Ti, 500/2000 MB allocatable
GeForce GTX 760, 512/2048 MB allocatable
GeForce GTX 860M, 500/2002 MB allocatable
GeForce GTX 960, 1024/4096 MB allocatable
GeForce GTX 965M, 1009/4037 MB allocatable
GeForce GTX 965M, 1023/4095 MB allocatable
GeForce GTX 970, 1024/4096 MB allocatable
GeForce GTX 970, 1009/4036 MB allocatable
GeForce GTX 980, 1023/4095 MB allocatable
GeForce GTX 980 Ti, 1533/6135 MB allocatable
GeForce GTX 1050 Ti, 1009/4038 MB allocatable
GeForce GTX 1060 6GB, 1536/6144 MB allocatable
GeForce GTX 1070, 2027/8110 MB allocatable
GeForce GTX 1070, 2048/8192 MB allocatable
GeForce GTX 1080, 2028/8113 MB allocatable
GeForce GTX 1080, 2048/8192 MB allocatable
GeForce GTX 1080 Ti, 2816/11264 MB allocatable
- Tesla K80, 2047/11439 MB allocatable # 17.77%
Tesla K80, 2879/11519 MB allocatable
Tesla K80, 2859/11439 MB allocatable
- Tesla M40, 2047/11519 MB allocatable # 17.77%
Tesla M60, 2030/8123 MB allocatable
Tesla P100-PCIE-16GB, 4070/16280 MB allocatable,
GRID K520, 1009/4036 MB allocatable
Quadro K5000, 1016/4065 MB allocatable
- TITAN X (Pascal), 2047/12288 MB allocatable # 16.66%
TITAN X (Pascal), 3047/12189 MB allocatable
TITAN X (Pascal), 3072/12288 MB allocatable
GeForce GTX TITAN X, 3071/12287 MB allocatable
Iris Pro, 384/1536 MB allocatablep
Intel(R) Iris(TM) Graphics 6100, 384/1536 MB allocatable
Intel(R) HD Graphics, 343/1374 MB allocatable
+ Intel(R) HD Graphics, 815/1630 MB allocatable # 50%
- Intel(R) HD Graphics 530, 2047/13041 MB allocatable # 15.69%
Intel(R) HD Graphics 4000, 384/1536 MB allocatable
Intel(R) HD Graphics 4000, 406/1624 MB allocatable
Intel(R) HD Graphics 4400, 480/1921 MB allocatable
Intel(R) HD Graphics 5000, 356/1425 MB allocatable
+ Intel(R) HD Graphics IvyBridge M GT2, 1536/2048 MB allocatable # 75%
+ Intel(R) HD Graphics IvyBridge M GT2, 1024/2048 MB allocatable # 50%
+ Intel(R) HD Graphics Bay Trail-T, 1440/1921 MB allocatable # 75%
+ Intel(R) HD Graphics Haswell GT2 Mobile, 1024/2048 MB allocatable # 50%
Intel(R) Core(TM)2 Duo CPU E4500 @ 2.20GHz, 509/2039 MB allocatable
Intel(R) Core(TM)2 Duo CPU E6850 @ 3.00GHz, 2043/8175 MB allocatable
Intel(R) Core(TM) i3 CPU 550 @ 3.20GHz, 4061/16247 MB allocatable
Intel(R) Core(TM) i3-3110M CPU @ 2.40GHz, 3987/15949 MB allocatable
- Intel(R) Core(TM) i5-4590 CPU @ 3.30GHz, 2047/32122 MB allocatable # 6.37%
Intel(R) Core(TM) i5-3230M CPU @ 2.60GHz, 1986/7944 MB allocatable
- Intel(R) Core(TM) i7-2620M CPU @ 2.70GHz, 2047/11955 MB allocatable # 17.12%
Intel(R) Core(TM) i7-4790 CPU @ 3.60GHz, 3988/15953 MB allocatable
Intel(R) Core(TM) i7-4870HQ CPU @ 2.50GHz, 4096/16384 MB allocatable
Intel(R) Core(TM) i7-5820K CPU @ 3.30GHz, 988/3955 MB allocatable
Intel(R) Core(TM) i7-6700K CPU @ 4.00GHz, 3982/15928 MB allocatable
Intel(R) Core(TM) i7-6700K CPU @ 4.00GHz, 4082/16329 MB allocatable
Intel(R) Xeon(R) CPU D-1587 @ 1.70GHz, 7970/31881 MB allocatable
Intel(R) Xeon(R) CPU E5-2620 v3 @ 2.40GHz, 8016/32065 MB allocatable
Intel(R) Xeon(R) CPU E5-2670 0 @ 2.60GHz, 32257/129028 MB allocatable
Intel(R) Xeon(R) CPU E7450 @ 2.40GHz, 8191/32764 MB allocatable
+ Intel(R) Xeon(R) CPU X5560 @ 2.80GHz, 24567/24567 MB allocatable # 100%; AMD platform interpreting Intel CPU?
Intel(R) Xeon(R) CPU X5560 @ 2.80GHz, 6141/24567 MB allocatable
ATI Radeon HD 6750M, 128/512 MB allocatable
ATI Radeon HD 6770M, 128/512 MB allocatable
AMD Radeon HD - FirePro D700 Compute Engine, 1536/6144 MB allocatable
AMD Radeon R9 M295X Compute Engine, 1024/4096 MB allocatable
AMD Radeon R9 M370X Compute Engine, 512/2048 MB allocatable
AMD Radeon HD Tahiti XT Prototype Compute Engine, 768/3072 MB allocatable
+ AMD A10-7300 Radeon R6, 10 Compute Cores 4C+6G , 7118/7118 MB allocatable # 100%
+ AMD A10-4600M APU with Radeon(tm) HD Graphics , 5593/5593 MB allocatable # 100%
+ AMD E-300 APU with Radeon(tm) HD Graphics, 3682/3682 MB allocatable # 100%
Cypress, 128/512 MB allocatable
Juniper, 128/512 MB allocatable
Loveland, 224/896 MB allocatable
Loveland, 224/896 MB allocatable
Pitcairn, 1257/1832 MB allocatable
+ Pitcairn, 1343/2048 MB allocatable # 65.58%
+ Pitcairn, 2047/4096 MB allocatable # 50%
+ Cayman, 512/1024 MB allocatable # 50%
Cayman, 512/2048 MB allocatable
Barts, 512/2048 MB allocatable,
+ Tahiti, 2027/2801 MB allocatable # 72.37%
+ Tahiti, 2101/3017 MB allocatable # 69.64%
+ Tahiti, 2112/3072 MB allocatable # 68.75%
+ Hawaii, 2878/4096 MB allocatable # 70.26%
+ Hawaii, 2047/4043 MB allocatable # 50.6%
+ Ellesmere, 2047/4038 MB allocatable # 50.69%
Ellesmere, 2047/8118 MB allocatable
Ellesmere, 2047/8192 MB allocatable
+ Ellesmere, 4048/8192 MB allocatable # 50%
+ Tonga, 2595/3682 MB allocatable # 70.48%
+ Bonaire, 1344/2048 MB allocatable # 65.63%
+ Capeverde, 576/1024 MB allocatable # 56.25%
Devastator, 512/2047 MB allocatable
AMD ARUBA (DRM 2.43.0, LLVM 3.8.0), 256/1024 MB allocatable
AMD BARTS (DRM 2.43.0, LLVM 3.8.0), 256/1024 MB allocatable
AMD SUMO (DRM 2.43.0, LLVM 3.7.0), 256/1024 MB allocatable
AMD CEDAR (DRM 2.45.0 / 4.7.0-kali1-686-pae, LLVM 3.8.1), 256/1024 MB allocatable
AMD HAWAII (DRM 2.45.0 / 4.7.0-kali1-amd64, LLVM 3.8.1), 256/1024 MB allocatable
+ AMD OLAND (DRM 2.46.0 / 4.8.0-kali2-amd64, LLVM 3.9.1), 1430/2043 MB allocatable # 70%
+ AMD ICELAND (DRM 3.3.0 / 4.8.0-kali2-amd64, LLVM 3.9.0), 1841/2046 MB allocatable # 90%
+ pthread-Intel(R) Core(TM) i5-3470 CPU @ 3.20GHz, 1513/1513 MB allocatable # 100%; pocl
#----------------------------------------------------------------------
@Aspect9
Copy link

Aspect9 commented May 13, 2018

Lol - my card isnt even on here - Lol

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment