  In this project, we design a four-layer (Silicon|TIM|Silicon|TIM), 3D floor
plan for NVIDIA GTX480 Fermi GPU architecture and compare heat dissipation and
power trends for matrix multiplication and Needleman-Wunsch kernels. First,
cuda kernels for the two algorithms are written. These kernels are compiled and
executed with the GPGPU Simulator to extract power logs for varying tensor
sizes. These power logs are converted to ptrace files with an automation script
written in Python. The 3D floor plan, along with the generated ptrace files are
given to HotSpot, which generates thermal heat maps to show heat dissipation
for various components of the Fermi architecture. These heat dissipation trends
for both the kernels are observed for multiple tensor sizes to draw qualitative
conclusions. The behavioral and execution patterns of both kernels are also
observed with these varying heat dissipation trends. With this project, we
observe that an increase in tensor size results in an increase of heat
dissipation in components of the Fermi Architecture. However, the temperature
of the chip remains saturated after a particular tensor size and remains
constant thereafter. Heat dissipation is non-uniform with smaller tensor sizes,
and becomes more uniform after a certain tensor size. This means, that after a
particular tensor size, more cores of the architecture get activated in the
computations, thereby resulting in an almost constant temperature. We also
observe that Needleman Wunsch uses more data movement between DRAM and caches,
thereby showing higher heat dissipation patterns in DRAMs when compared to
Matrix multiplication for the same tensor size. Our observations are in
accordance with the theoretical concepts behind the working of the two
algorithms, thereby making our results consistent.
