ADL OverDriveTM Version 5.0 APIs Notes

 

 

 

 

 

 

 

 

 

Copyright © 2009 Advanced Micro Devices, Inc. All rights reserved.


 

 

 

ATI OverDrive™ Version 5 provides a significantly enhanced feature set compared with Version 4. ADL exposes these new features through its OD5 API set. ATI OverDrive™ Version 5 API supports the following operating systems:

·         Windows XP (32 and 64-bit)

·         Windows Vista (32 and 64-bit)

·         Windows 7 (32 and 64-bit)

·         Linux 32 and 64 bit distributions

Performance State Management

Performance state management is a generic AMD graphics driver feature. It allows for changes in the GPU settings such as engine clocks, memory clocks, core voltage, etc. which are based on various internal policies. These policies may include a GPU utilization level, a type of active applications, and more. Standard performance states are defined in the video BIOS.

Thermal Management

The purpose of thermal management is to keep the GPU temperature within an optimal operational range, and to protect the GPU from overheating and damage. It is primarily accomplished by changing the fan speed based on the GPU temperature. A pre-defined “fan speed vs. temperature” data is programmed into the thermal controller’s look-up table during the driver initialization. The thermal controller monitors the GPU temperature and changes the fan speed automatically without software assistance. If the heat cannot be dissipated sufficiently by the fan, then the software thermal protection is triggered. The software disables the highest performance state and changes the GPU configuration to a lower performance setting. If the temperature is reduced below a certain level, the high performance state is restored. If the temperature keeps rising even at the lower setting, the driver will request the OS to shut down the system.

ATI OverDrive

ATI OverDrive is a feature that allows the end-users to customize the performance state and fan speed control of their AMD product. This is accomplished through a set of interfaces that are exposed to the UI application. The application can:

·         Get access to any adapter in a single adapter, multi-adapter, CrossFire, and mixed configurations

·         Check whether OverDrive Version 5 is supported on the adapter

·         Get information about standard performance and power saving states available on the adapter

·         Get information about state parameter ranges available for customization

·         Define a custom set of performance states

·         Test custom settings

·         Get information about the current active performance configuration

·         Get information about the thermal controller connected to the GPU

·         Get the current GPU temperature

·         Get information about the available fan speed and control options

·         Set a custom fan speed

Performance States

The ADL OverDrive5 APIs provides access to the engine clocks, memory clocks, and core voltage components of the performance states. Each state component can be changed within some operating range. Maximum values for component ranges are defined in the Video BIOS and cannot be exceeded.

In the API functions, the performance states are ordered in an ascending order. This ordering applies to each parameter of the performance state. If the order is wrong, then the interface functions fail and the custom set of performance states will not be set. It is valid to define adjacent performance states with equal component values.

On a mobile system standard performance states for both performance and power saving power policies can be customized.  State customization for the power saving power policy requires a special driver packaging option.

After a custom set of performance states is set, it will replace the standard set of states. In some cases, such as high-definition video playback, a special set of performance states may be temporarily applied. These special cases depend on the GPU type.

The driver does not save the custom performance settings when the computer is powered down. The application used to define the custom performance settings will need to have the capability to store the settings and re-apply them.

In addition to the core voltage and engine and memory frequencies, there are other parameters that are used to configure the GPU.  For standard performance states these parameters are determined through a comprehensive qualification process. Most of them are not adjusted when custom performance states are being set, therefore the GPU stability and image quality are not guaranteed.

Fan Speed Control

In standard configurations, the fan speed is automatically adjusted to the GPU temperature. If a user switches the fan speed control to manual mode and then sets a custom fan speed that is insufficient to dissipate the generated heat, a thermal event may occur. If a thermal event occurs, then the default fan speed control will take precedence and override the user’s custom fan speed setting. Once the thermal condition is improved, the user’s custom fan speed will be restored.

Access to the GPU

Different GPU configurations may be possible if the system has more than one GPU. GPU access methods are different depending on the adapter configuration and operating system. For example, CrossFire™ or extended desktop mode may be enabled, or the system may have a mixed configuration. The GPU Configuration Group interfaces provide the necessary information to access any GPU. Please refer to the What is ADL and how to use it document to properly initialize ADL and obtain the AdapterInfo for each adapter in the system.

The following is the recommended procedure to obtain the GPU addressing parameters:

1.      Obtain the number of adapters in the system using ADL_Adapter_NumberOfAdapters_Get() and for each adapter obtain the AdpterInfo using ADL_Adapter_AdapterInfo_Get()

2.      You may check whether or not the adapter associated with the found iAdapterIndex is ATI adapter using ADL_Adapter_ID_Get(). If so, the returned Adapter Identifier should not be zero..

3.      In a CrossFire system use ADL_Adapter_Crossfire_Caps() and ADL_Adapter_Crossfire_Get() APIs to determine the Adapter Indexes associated with Master and Slave adapters. In Windows operating systems you can use both master and slave adapter indexes to overclock an adapter. In Linux you may only use the adapter index associated with the master adapter. Using iAdapterIndex for the slave adapter is not currently supported and may cause the corresponding OD5 API to fail.

Using OD5 APIs in a non-OD5 compatible system.

If an OD5 API is used on a system that doesn’t support OverDrive technology, the return code will be the general ADL_ERR. Due to performance reasons ADL doesn’t check if OD5 is supported and passes the request to the driver. The driver checks internally if OverDrive is supported and if so, executes the request. Some ADL Overdrive APIs may succeed even if the System is generic OD3 or OD4 (not OD5) as some APIs are compatible. Generally boards using, Radeon R7xxx family and newer ASICs are OverDrive 5 compatible.