Design ¡Space ¡Exploration ¡of ¡Memory ¡Model ¡ ¡ for ¡Heterogeneous ¡Computing ¡ Jieun ¡Lim* ¡and ¡Hyesoon ¡Kim ¡ 6/16/2012 ¡ *Seoul ¡Na/onal ¡University ¡
Introduc/on ¡ } Heterogeneous ¡compu/ng ¡has ¡become ¡a ¡major ¡architecture ¡trend ¡ } How ¡to ¡design ¡memory ¡system ¡ } Strongly ¡coupled ¡with ¡architecture ¡design ¡and ¡programming ¡ model ¡ } Difficult ¡to ¡compare ¡models ¡ } Goal ¡ } Understand ¡a ¡trade-‑off ¡in ¡memory ¡system ¡design ¡decisions ¡ } Evaluate ¡the ¡overhead ¡of ¡design ¡op/ons ¡ Sandy ¡Bridge ¡ Fusion ¡ 2 ¡
Exis/ng ¡Memory ¡Address ¡Space ¡Design ¡Op/ons ¡ Unified ¡space ¡ Disjoint ¡space ¡ Par/ally-‑shared ¡space ¡ ADSM ¡ Unified ¡space: ¡iden/cal ¡address ¡space ¡both ¡for ¡CPU ¡and ¡GPU ¡ } No ¡explicit ¡data ¡transfer, ¡but ¡complicated ¡TLB/MMU ¡designs ¡ } Disjoint ¡space ¡ } Scalable ¡and ¡easy ¡to ¡implement, ¡but ¡need ¡explicit ¡data ¡transfer ¡ } Par/ally-‑shared: ¡only ¡part ¡of ¡the ¡space ¡is ¡shared ¡ } Convenience ¡of ¡using ¡shared ¡memory, ¡but ¡overhead ¡of ¡managing ¡between ¡spaces ¡ } ADSM: ¡one ¡PU ¡can ¡access ¡the ¡en/re ¡memory, ¡but ¡the ¡other ¡cannot ¡ } Provide ¡a ¡shared ¡space ¡with ¡discrete ¡memories ¡ } 3 ¡
Heterogeneous ¡Architecture ¡Summary ¡ } None ¡of ¡the ¡heterogeneous ¡compu/ng ¡system ¡has ¡employed ¡a ¡ unified, ¡fully-‑coherent, ¡strong-‑consistent ¡memory ¡system ¡yet ¡ } Most ¡proposed/exis/ng ¡systems ¡have ¡disjoint ¡memory ¡systems ¡ 4 ¡
Code ¡Example ¡for ¡Par/ally ¡Shared ¡Memory ¡ ¡ a b d e } Reduc/on ¡example ¡ GPU CPU } Show ¡the ¡differences ¡of ¡using ¡different ¡ malloc ¡and ¡ c f ownership ¡changes ¡for ¡objects ¡in ¡the ¡shared ¡space ¡ CPU f Ownership control Special malloc function Ownership control Partially-shared memory space 5 ¡
Programmability ¡vs. ¡Memory ¡Address ¡Space The ¡number ¡of ¡source ¡lines ¡to ¡handle ¡data ¡communica/on ¡ Different ¡programming ¡op/ons ¡affect ¡how ¡easy/difficult ¡it ¡is ¡to ¡write ¡ programs ¡ ¡ Use ¡the ¡number ¡of ¡source ¡lines ¡to ¡indicate ¡programmability ¡ The ¡number ¡of ¡addi/onal ¡source ¡lines ¡that ¡are ¡required ¡to ¡handle ¡ explicit ¡data ¡communica/on ¡and ¡data ¡handling ¡opera/ons ¡ ¡ Unified ¡< ¡par/ally-‑shared ¡<= ¡ADSM ¡< ¡disjoint ¡ ¡ Unified ¡space ¡does ¡not ¡require ¡any ¡special ¡APIs ¡ Disjoint ¡memory ¡space ¡requires ¡the ¡most ¡addi/onal ¡source ¡code ¡lines ¡ 6 ¡
Conclusion ¡ } We ¡exploited ¡the ¡design ¡space ¡of ¡heterogeneous ¡ compu/ng ¡memory ¡systems ¡ } memory ¡space ¡does ¡not ¡affect ¡performance ¡ significantly ¡ } Par/ally ¡shared ¡memory ¡space ¡is ¡the ¡most ¡promising ¡ op/on ¡ ¡ } provides ¡many ¡hardware ¡design ¡op/ons ¡and ¡moderately ¡good ¡ programmability ¡ 7 ¡
Recommend
More recommend