TT-System-Firmware APIs 19.13.99
Tenstorrent Firmware
Loading...
Searching...
No Matches
aiclk_ppm.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2024 Tenstorrent AI ULC
3 * SPDX-License-Identifier: Apache-2.0
4 */
5
6#ifndef AICLK_PPM_H
7#define AICLK_PPM_H
8
9#include <stdint.h>
10#include <stdbool.h>
11
12/* Bounds checks for FMAX and FMIN (in MHz) */
13#define AICLK_FMAX_MAX 1400.0F
14#define AICLK_FMAX_MIN 800.0F
15#define AICLK_FMIN_MAX 1400.0F
16#define AICLK_FMIN_MIN 200.0F
17#define AICLK_RESET_SAFE_FREQ 250.0F
18
41
55
63
81
82void aiclk_update_busy(void);
83void SetAiclkArbMax(enum aiclk_arb_max arb_max, float freq);
84void SetAiclkArbMin(enum aiclk_arb_min arb_min, float freq);
85void EnableArbMax(enum aiclk_arb_max arb_max, bool enable);
86void EnableArbMin(enum aiclk_arb_min arb_min, bool enable);
87void CalculateTargAiclk(void);
88void DecreaseAiclk(void);
89void IncreaseAiclk(void);
90void InitArbMaxVoltage(void);
91float GetThrottlerArbMax(enum aiclk_arb_max arb_max);
93void SetAiclkResetSafe(bool enable);
103
104struct response;
105union request;
107
108#endif
union aiclk_targ_freq_info get_targ_aiclk_info(void)
Definition aiclk_ppm.c:462
aiclk_arb_min
AICLK minimum frequency arbiters.
Definition aiclk_ppm.h:50
@ aiclk_arb_min_fmin
Definition aiclk_ppm.h:51
@ aiclk_arb_min_busy
Definition aiclk_ppm.h:52
@ aiclk_arb_min_count
Definition aiclk_ppm.h:53
void SetAiclkResetSafe(bool enable)
Definition aiclk_ppm.c:299
void InitArbMaxVoltage(void)
Definition aiclk_ppm.c:225
uint32_t get_aiclk_effective_arb_max(enum aiclk_arb_max *effective_max_arb)
Definition aiclk_ppm.c:354
uint32_t get_aiclk_effective_arb_min(enum aiclk_arb_min *effective_min_arb)
Definition aiclk_ppm.c:337
uint8_t throttler_counter_handler(const union request *request, struct response *response)
Definition aiclk_ppm.c:547
uint32_t get_enabled_arb_max_bitmask(void)
Definition aiclk_ppm.c:385
uint32_t GetAiclkTarg(void)
Definition aiclk_ppm.c:309
uint32_t get_enabled_arb_min_bitmask(void)
Definition aiclk_ppm.c:371
aiclk_arb_max
AICLK maximum frequency arbiters.
Definition aiclk_ppm.h:27
@ aiclk_arb_max_thm
Definition aiclk_ppm.h:32
@ aiclk_arb_max_count
Definition aiclk_ppm.h:39
@ aiclk_arb_max_board_power
Definition aiclk_ppm.h:33
@ aiclk_arb_max_gddr_thm
Definition aiclk_ppm.h:35
@ aiclk_arb_max_host_fmax
Definition aiclk_ppm.h:38
@ aiclk_arb_max_doppler_critical
Definition aiclk_ppm.h:37
@ aiclk_arb_max_doppler_slow
Definition aiclk_ppm.h:36
@ aiclk_arb_max_voltage
Definition aiclk_ppm.h:34
@ aiclk_arb_max_tdp
Definition aiclk_ppm.h:29
@ aiclk_arb_max_fmax
Definition aiclk_ppm.h:28
@ aiclk_arb_max_tdc
Definition aiclk_ppm.h:31
@ aiclk_arb_max_fast_tdc
Definition aiclk_ppm.h:30
void SetAiclkArbMin(enum aiclk_arb_min arb_min, float freq)
Definition aiclk_ppm.c:81
void EnableArbMin(enum aiclk_arb_min arb_min, bool enable)
Definition aiclk_ppm.c:91
uint32_t GetMaxAiclkForVoltage(uint32_t voltage)
Definition aiclk_ppm.c:201
uint32_t GetAiclkFmax(void)
Definition aiclk_ppm.c:319
float GetThrottlerArbMax(enum aiclk_arb_max arb_max)
Definition aiclk_ppm.c:195
void EnableArbMax(enum aiclk_arb_max arb_max, bool enable)
Definition aiclk_ppm.c:86
uint8_t ForceAiclk(uint32_t freq)
Definition aiclk_ppm.c:277
targ_freq_reason
Definition aiclk_ppm.h:56
@ limit_reason_max_arb
Definition aiclk_ppm.h:58
@ limit_reason_sweep
Definition aiclk_ppm.h:60
@ limit_reason_min_arb
Definition aiclk_ppm.h:57
@ limit_reason_fmin
Definition aiclk_ppm.h:59
@ limit_reason_forced
Definition aiclk_ppm.h:61
void IncreaseAiclk(void)
Definition aiclk_ppm.c:184
void CalculateTargAiclk(void)
Definition aiclk_ppm.c:96
uint32_t GetAiclkFmin(void)
Definition aiclk_ppm.c:314
void aiclk_update_busy(void)
Definition aiclk_ppm.c:324
void SetAiclkArbMax(enum aiclk_arb_max arb_max, float freq)
Definition aiclk_ppm.c:76
void DecreaseAiclk(void)
Definition aiclk_ppm.c:173
__UINT32_TYPE__ uint32_t
__UINT8_TYPE__ uint8_t
Definition msgqueue.h:1077
Information about the target AICLK frequency decision.
Definition aiclk_ppm.h:70
uint32_t reason
Definition aiclk_ppm.h:78
uint32_t u32_all
Definition aiclk_ppm.h:71
uint32_t arbiter
Definition aiclk_ppm.h:76
A tenstorrent host request.
Definition msgqueue.h:944