
Let’s first look at the clock system to see how NVIDIA Blackwell solved complexity.
According to the Blackwell white paper, the important comments on clock control are as follows.
“New clock gating capabilities allow entire clock trees to be shut off very quickly, saving dynamic power even in regions of work where only part of the chip is idle, or where idleness is so short it would typically be considered ‘active'”.
“GDDR7’s fast-wakeup clocking architecture. Now the entire memory clock tree can be gated for the first time.”
“Blackwell incorporates the largest overhaul in clock architecture in over a decade. With it, clocks can adjust to dynamic workloads 1000x faster than previous GPU architectures, allowing Blackwell to quickly respond to the dynamic nature of GPU workloads and shift clock speeds up or down based on workload for best performance and power efficiency.”
In summary,
all clock trees can be gated at the hardware level,
and to solve the latency issue, the fast-wakeup clocking architecture was applied,
and **DVFS(Dynamic Voltage and Frequency Scaling) can also handle clock change control at the hardware level. (DVFS: technology that automatically adjusts the chip’s voltage and clock speed depending on the situation)
This means that the very fine grain clock gating scheme that was applied to mobile APs has been fully applied to GPUs.
In fact, in order to reduce power, the only way is to control the clock more precisely and tightly. The development of the technology itself has already been completed, and the key is how well the existing technology can be applied.
Although we do not know the entire architecture of Blackwell’s clock system, we can estimate it as shown in the figure above.
GB202 has a hierarchical structure that goes from CUDA → SM → TPC → GPC. Accordingly, the clock should have a similar structure that matches the core layer, and each core should have a 1:1 interface with the clock system. Only then can the on/off of the clock be precisely controlled at the hardware level.
For fast on/off, each lower core should be connected to the upper core. For example, in the figure below, 128 CUDAs are each connected to an SM (sky blue dotted line), and at least 128 SMs must have an interface to control the CUDA cores individually.
However, if they are all connected one by one, the design becomes too complicated and inefficient. So it is easier to connect the cores (blue solid line) to the clock system layer. Even if only one of the lower cores is alive, the upper core must be alive, so it is much easier to control and judge the entire system if the cores communicate with each other.
However, if you apply this hardware clock control scheme at the mobile AP level, the complexity of the clock system design increases significantly.
1. The relationship between IP and clock system must be defined.
2. This newly defined operation must operate in any situation at the hardware level.
3. And you must resolve all latency issues that may occur when gating is performed frequently.
It takes a lot of money and time to create such a system.
Since other NPU companies do not have much experience with this type of fine control or have little experience, it is not easy for them to maximize power efficiency in real-world environments like NVIDIA. In real-world use, it is rare to operate tens of thousands of cores at the same time, and most of the time only a few cores are operating. The rest will not operate, and if this is controlled by software, the software control overhead becomes too large.
Ultimately, Blackwell’s clock system is not simply a functional improvement, but a change in design philosophy to conquer complexity.
An architecture that allows tens of thousands of cores to flexibly wake up and sleep is the basis for maximizing power efficiency and maximizing GPU performance.
However, for such detailed control, it is essential to precisely define the relationship between clocks and power, and to design a system that operates without exception even in complex systems.
엔비디아 블랙웰이 어떻게 복잡도를 해결했는지, 먼저 클럭시스템을 살펴보겠습니다.
블랙웰 백서를 보면, 클럭 제어의 중요한 커멘트들은 다음과 같습니다.
“New clock gating capabilities allow entire clock trees to be shut off very quickly, saving dynamic power even in regions of work where only part of the chip is idle, or where idleness is so short it would typically be considered ‘active’”.
“GDDR7’s fast-wakeup clocking architecture. Now the entire memory clock tree can be gated for the first time.”
“Blackwell incorporates the largest overhaul in clock architecture in over a decade. With it, clocks can adjust to dynamic workloads 1000x faster than previous GPU architectures, allowing Blackwell to quickly respond to the dynamic nature of GPU workloads and shift clock speeds up or down based on workload for best performance and power efficiency.”
정리하면,,
모든 클럭 트리를 하드웨어 레벨에서 GATING할 수 있고,
이 때 Latency 문제를 해결하기 위해서 빠르게 깨울 수 있는 기능, fast-wakeup clocking architecture를 적용했으며
**DVFS(Dynamic Voltage and Frequency Scaling) 에서도 클럭 변경 제어도 하드웨어 레벨에서 처리할 수 있다,, 정도 될 것 같습니다.
(DVFS: 칩의 전압과 클럭 속도를 상황에 따라 자동으로 조절하는 기술)
이 얘기는, 일단 모바일 AP에 적용되던 아주 fine grain한 clock gating scheme이 GPU에 본격적으로 적용이 되었다는 말입니다.
사실 파워를 줄이려면 클럭을 더 세밀하고 촘촘하하게 제어하는 수 밖에 없습니다. 기술 자체의 발전은 이미 다 완성이 되었고, 있는 기술을 얼마나 더 잘 적용하느냐가 핵심인 것이죠.
Blackwell의 클럭시스템 아키텍처를 완전히 알 수는 없지만, 아래 그림과 같이 추정 할 수 있을 것 같습니다.
GB202는 CUDA → SM → TPC → GPC 로 이어지는 계층 구조를 가지고 있습니다. 이에 맞춰 클럭도 코어 레이어에 맞춘 유사한 구조를 가지고 있어야 하고, 개별 코어는 클럭시스템과 1:1 인터페이스를 가지고 있어야합니다. 그래야 하드웨어레벨에서 클럭의 on/off를 정밀하게 제어할 수 있습니다.
빠른 on/off를 위해서는 하위 코어 하나하나가 상위 코어에 연결되어 있어야 합니다. 예를 들어 아래 그림에서 보면, 128개의 CUDA가 각각 SM에 연결되어(하늘색 점선), 최소 128개의 SM과의 인터페이스가 있어야 CUDA코어를 개별 제어할 수 있다는 얘기입니다.
그런데 이렇게 하나하나 다 연결하면 설계가 너무 복잡해지고 비효율적입니다. 그래서 클럭시스템 레이어 즉, 코어끼리 연결하여 (하늘색 실선) 소통하도록 하는 것이 더 편합니다. 하위 코어중에 하나만 살아도, 상위 코어는 살아야하기 때문에, 코어끼리 소통하는 것이 전체 시스템을 제어하고 판단하기에 훨씬 편해집니다.
하지만, 이렇게 모바일 AP 수준의 하드웨어 클럭 제어 scheme을 적용하면, 클럭시스템 설계의 복잡도가 엄청나게 올라갑니다.
1. IP와 클럭시스템의 관계를 다 정의해줘야 하고,
2. 이 새롭게 정의된 동작이 하드웨어 레벨에서 어떤 상황에서도 동작해야 합니다.
3. 그리고 gating을 수시로 할 경우 발생할 수 있는 latency문제까지 다 해결해줘야하죠.
이런 시스템을 만들려면 엄청난 돈과 시간이 필요합니다.
다른 NPU회사들은 이런 식의 미세 제어를 해본 경험이 없거나 많지 않기 때문에, 엔비디아만큼 실제 사용 환경에서 파워 효율을 극대화 하기는 쉽지 않습니다. 실제 사용에서는 수만개 코어를 동시에 작동하는 일은 거의 없고, 대부분 일부 코어만 동작합니다. 나머지 부분들은 동작하지 않을텐데, 이것을 소프트웨어로 제어하면, 소프트웨어의 제어 오버헤드가 너무 커집니다.
결국 블랙웰의 클럭시스템은 단순한 기능 개선이 아니라, 복잡도를 정복하기 위한 설계 철학의 변화입니다.
수만 개의 코어가 유연하게 깨어나고 잠들 수 있는 아키텍처는, 파워 효율을 극대화하고 GPU의 성능을 최고로 끌어내는 기반이 됩니다.
하지만 이처럼 세밀한 제어를 위해서는 클럭과 파워의 관계를 정밀하게 정의하고, 복잡한 시스템에서도 예외 없이 동작하는 설계가 필수적입니다.
