はじめに
TenstorrentのWohm Holeの動作周波数が分かったので記録として残します。
クロックは3種類
下記の Tenstorrent / TT-Metal の このIssue に Wohm Hole のクロックが載っていました。
Device Telemetry * Device 0: - Core Voltage (V) : 0.72 / 0.95 - AICLK (MHz) : 500 / 1000 - ARCCLK (MHz) : 540 - AXICLK (MHz) : 900 - Core Current (A) : 10.0 / 160 - Core Power (W) : 6.0 / 85 - Core Temp (°C) : 43.2 / 75 - VREG Temp (°C) : 39.0 - Inlet Temp (°C) : 37.0 - Outlet Temp 1 (°C) : 36.0 - Outlet Temp 2 (°C) : 36.0
クロックは、3つ
- AICLK (MHz) : 500 / 1000
- ARCCLK (MHz) : 540
- AXICLOCK : 900MHz
AICLK が Compute Tile の動作周波数ですね。
ARCCLK は、内部にあるCPU(ARC)の動作周波数ですね。Synopsys社の 4コア構成のARC HS48が載っています。
AXICLKは、内部のAXIの動作周波数ですかね。このAXIって、どこの部分なんでしょうかね。
上記の情報は、tt-smi の出力です。tt-smi は github にて公開されています。
これらは、SMBUS_TELEMETRY_LIST に載っているので、SMBUSから獲得しているんですかね。
tt_sim//tt_sim_backend.py の get_chip_telemerty 関数で獲得しているようです。
def get_chip_telemetry(self, board_num) -> Dict: """Get telemetry data for chip. None if ARC FW not running""" current = int(self.smbus_telem_info[board_num]["SMBUS_TX_TDC"], 16) & 0xFFFF voltage = int(self.smbus_telem_info[board_num]["SMBUS_TX_VCORE"], 16) / 1000 power = int(self.smbus_telem_info[board_num]["SMBUS_TX_TDP"], 16) & 0xFFFF asic_temperature = ( int(self.smbus_telem_info[board_num]["SMBUS_TX_ASIC_TEMPERATURE"], 16) & 0xFFFF ) / 16 aiclk = int(self.smbus_telem_info[board_num]["SMBUS_TX_AICLK"], 16) & 0xFFFF chip_telemetry = { "voltage": f"{voltage:4.2f}", "current": f"{current:5.1f}", "power": f"{power:5.1f}", "aiclk": f"{aiclk:4.0f}", "asic_temperature": f"{asic_temperature:4.1f}", } return chip_telemetry
telemetry に関しては、luwen というソフトウェア経由で獲得するようです。
Grayskull では、ここ。Wohm Hole では、ここにありました。
おわりに
Wohm Holeの動作周波数は分かりましたが、Grayskull の動作周波数はどうなんでしょうかね。