1
mirror of https://github.com/hashcat/hashcat synced 2024-12-27 05:13:45 +01:00

Added current engine clock and current memory clock to the status display (ADL only atm)

Automatically enable AMD powertune in benchmark-mode
This commit is contained in:
Jens Steube 2016-05-28 16:32:45 +02:00
parent 75a6e432db
commit e97fa06a7a
4 changed files with 59 additions and 4 deletions

View File

@ -23,6 +23,7 @@ It combines all features of all hashcat projects in one project.
- Added makefile native compilation target
- Added makefile install and uninstall targets
- Added autotuning engine and user-configurable tuning database
- Added current engine clock and current memory clock to the status display
- Added execution timer of the running kernel to the status display
- Added command prompt to quit at next restore checkpoint
- Added human-readable error message for the OpenCL error codes

View File

@ -1457,6 +1457,8 @@ int hm_check_fanspeed_control (void *adl, hm_attrs_t *hm_device, u32 *valid_adl_
int hm_get_temperature_with_device_id (const uint device_id);
int hm_get_fanspeed_with_device_id (const uint device_id);
int hm_get_utilization_with_device_id (const uint device_id);
int hm_get_memoryspeed_with_device_id (const uint device_id);
int hm_get_corespeed_with_device_id (const uint device_id);
int hm_set_fanspeed_with_device_id_amd (const uint device_id, const int fanspeed);

View File

@ -1549,10 +1549,14 @@ void status_display ()
{
char utilization[HM_STR_BUF_SIZE] = { 0 };
char temperature[HM_STR_BUF_SIZE] = { 0 };
char fanspeed[HM_STR_BUF_SIZE] = { 0 };
char fanspeed[HM_STR_BUF_SIZE] = { 0 };
char corespeed[HM_STR_BUF_SIZE] = { 0 };
char memoryspeed[HM_STR_BUF_SIZE] = { 0 };
hm_device_val_to_str ((char *) utilization, HM_STR_BUF_SIZE, "%", hm_get_utilization_with_device_id (device_id));
hm_device_val_to_str ((char *) temperature, HM_STR_BUF_SIZE, "c", hm_get_temperature_with_device_id (device_id));
hm_device_val_to_str ((char *) utilization, HM_STR_BUF_SIZE, "%", hm_get_utilization_with_device_id (device_id));
hm_device_val_to_str ((char *) temperature, HM_STR_BUF_SIZE, "c", hm_get_temperature_with_device_id (device_id));
hm_device_val_to_str ((char *) corespeed, HM_STR_BUF_SIZE, "Mhz", hm_get_corespeed_with_device_id (device_id));
hm_device_val_to_str ((char *) memoryspeed, HM_STR_BUF_SIZE, "Mhz", hm_get_memoryspeed_with_device_id (device_id));
if (device_param->device_vendor_id == VENDOR_ID_AMD)
{
@ -1563,7 +1567,7 @@ void status_display ()
hm_device_val_to_str ((char *) fanspeed, HM_STR_BUF_SIZE, "%", hm_get_fanspeed_with_device_id (device_id));
}
log_info ("HWMon.GPU.#%d...: %s Util, %s Temp, %s Fan", device_id + 1, utilization, temperature, fanspeed);
log_info ("HWMon.GPU.#%d...: %s Util, %s Temp, %s Fan, %s Core, %s Memory", device_id + 1, utilization, temperature, fanspeed, corespeed, memoryspeed);
}
else
{
@ -3841,6 +3845,7 @@ static void *thread_monitor (void *p)
if (data.devices_status != STATUS_RUNNING) continue;
#ifdef HAVE_HWMON
if (hwmon_check == 1)
{
@ -6883,6 +6888,7 @@ int main (int argc, char **argv)
potfile_disable = 1;
weak_hash_threshold = 0;
gpu_temp_disable = 1;
powertune_enable = 1;
data.status_timer = status_timer;
data.restore_timer = restore_timer;

View File

@ -3231,6 +3231,52 @@ int hm_get_utilization_with_device_id (const uint device_id)
return -1;
}
int hm_get_memoryspeed_with_device_id (const uint device_id)
{
if ((data.devices_param[device_id].device_type & CL_DEVICE_TYPE_GPU) == 0) return -1;
#ifdef HAVE_ADL
if (data.devices_param[device_id].device_vendor_id == VENDOR_ID_AMD)
{
if (data.hm_amd)
{
ADLPMActivity PMActivity;
PMActivity.iSize = sizeof (ADLPMActivity);
if (hm_ADL_Overdrive_CurrentActivity_Get (data.hm_amd, data.hm_device[device_id].adapter_index.amd, &PMActivity) != ADL_OK) return -1;
return PMActivity.iMemoryClock / 100;
}
}
#endif // HAVE_ADL
return -1;
}
int hm_get_corespeed_with_device_id (const uint device_id)
{
if ((data.devices_param[device_id].device_type & CL_DEVICE_TYPE_GPU) == 0) return -1;
#ifdef HAVE_ADL
if (data.devices_param[device_id].device_vendor_id == VENDOR_ID_AMD)
{
if (data.hm_amd)
{
ADLPMActivity PMActivity;
PMActivity.iSize = sizeof (ADLPMActivity);
if (hm_ADL_Overdrive_CurrentActivity_Get (data.hm_amd, data.hm_device[device_id].adapter_index.amd, &PMActivity) != ADL_OK) return -1;
return PMActivity.iEngineClock / 100;
}
}
#endif // HAVE_ADL
return -1;
}
#ifdef HAVE_ADL
int hm_set_fanspeed_with_device_id_amd (const uint device_id, const int fanspeed)
{