Tuning database

Description

Autotune measures your device on every run and picks a launch size. The tuning database overrides that measurement where a known value does better, or where autotune cannot see what a particular workload needs.

Every file ending in .hctune under tunings/ is read at startup and all the rows go into one table. There is no single database file, and the split across files is for whoever maintains them rather than for hashcat. The shipped tree carries 322 rows over 12 files plus 329 aliases in Alias.hctune. Your own file sits beside them and is read the same way.

The database is skipped entirely for --help, -I, --hash-info, --keyspace, --left, --show, --version and --identify, because none of them launch a kernel.

What a row says

There are six columns. The first three determine whether the row applies. The last three specify the settings:

column meaning
Device Name the device, or an alias, or * for any
Attack Kern the attack kernel the row applies to
Hash Type the hash-mode, or *
Vector Width the vector width to use
Kernel Accel the -n value
Kernel Loops the -u value

So a row is a measurement someone already took, recorded for a device and hash-mode combination rather than measured again on every run.

Full documentation

  • docs/hashcat-tuningdb.md for how a row is selected and how to add one
  • tunings/README.md in the release for the file-format reference
Except where otherwise noted, content on this wiki is licensed under the following license: Public Domain