TensorFlow XLA优化与Memory
XLA(加速线性代数)是用于优化TensorFlow计算的线性代数的域特定编译器。结果是在服务器与移动平台上的速度,内存使用率与可移植性得到了改善。最初,大多数用户不会从XLA中看到很大的好处,通过使用即时(JIT)编译或提前编译(AOT)的XLA进行试验,针对新硬件加速器尝试XLA。
XLA框架是实验性与积极的开发。尽管现有算子的语义,不太可能发生变化,但预计将增加更多的算子,涵盖重要的用例。
XLA与TensorFlow合作有几个目标:
Memory杂谈(DRAM,SRAM)
一个正常的40nm工艺,一个6T(6 transistors)的SRAM面积是150*0.04*0.04= 0.24um2/SRAM。如果需要一个1Mb的SRAM,面积是1M*0.24um2= 0.24mm2,大概0.5mm*0.5mm。
估算是差不多合理的。40nm的CMOS工艺,feature size是40nm,一个SRAM的面积大概就是120-150F^2,算的是一样的。
memory的面积居然都如此的标准!
为何DRAM比SRAM的面积小很多呢?有不同memory的电路图?
(a) DRAM ; (b) SRAM
上面这个图里,左边是一个DRAM,一个transistor加上一个capacitor,结构相当简单。右图是一个SRAM,中间是交叉连接的两个inverter,组成了一个典型的latch。(latch,一个digital的capacitor),左右两个transistor当做了开关,功能与左图DRAM pass transistor差不多。
memory的面积,SOC里放了一个512MB的SRAM,12nm的工艺下,面积是400mm^2.
尺寸是20mm*20mm。
继续Google:
SRAM vs. DRAM in Computers
表格里CPU一般放的是SRAM,替代DRAM。SRAM用了positive feedback的latch,速度比模拟电路(一个模拟的开关对电容充电)的DRAM要快很多。
SRAM要6个transistor,DRAM才一个transistor,面积小了很多。如果需要很大的memory,DRAM在节约SOC成本占优了。
有很特别的电容,需要一定的阈值与对抗漏电能力,DRAM的工艺,替代传统logic process,特别的 DRAM process。只有三家公司提供DRAM的工艺:美光科技,三星与 SK 海力士。
继续谈成本,Google到了下面这句话:
Logic processes - those used for CPUs - are also more expensive. A logic wafer might cost $3500 vs $1600 for DRAM. Intel's logic wafers may cost as much $5k. That's costly real estate.
SRAM的成本压力,CPU上不会集成大的DRAM,把DRAM放在片外。CPU的内部,只有SRAM作为cache,替代主要的memory。
有一种所谓的Memory Hierarchy。类似金字塔形状的结构,最大程度的优化速度与成本。
参考资料
https://zhuanlan.zhihu.com/p/146094598
https://www.zhihu.com/question/285202403/answer/444253962