- TPU (Tensor Processing Unit) v1 รุ่นแรกของ Google มีเป้าหมายเพื่อพัฒนา ASIC (Application Specific Integrated Circuit) ที่ให้ความคุ้มค่าต่อประสิทธิภาพดีกว่า 10 เท่า โดยพิจารณาจากโอกาสของบริการใหม่ที่ใช้ดีปเลิร์นนิง รวมถึงขนาดและต้นทุนของฮาร์ดแวร์ที่จำเป็น
- TPU ถูกออกแบบมาเพื่อเร่งการคำนวณเทนเซอร์ โดยเทนเซอร์หมายถึงการคำนวณที่แมปความสัมพันธ์ของอาร์เรย์หลายมิติระหว่างเวกเตอร์ สเกลาร์ และเทนเซอร์อื่น ๆ
- การคูณเมทริกซ์เป็นการคำนวณหลักของโครงข่ายประสาทเทียม โดยใช้คูณเวกเตอร์อินพุตกับเมทริกซ์น้ำหนัก จากนั้นจึงใช้ activation function เพื่อคำนวณชั้นซ่อนและชั้นเอาต์พุต
Tensor Processing Unit รุ่นแรกของ Google: จุดกำเนิด
- โครงการ TPU v1 เริ่มต้นขึ้นในช่วงปลายปี 2013 และพัฒนาเสร็จภายใน 15 เดือน ซึ่งเป็นหัวข้อที่น่าสนใจสำหรับผู้ที่สนใจตัวเร่งความเร็วสำหรับโครงข่ายประสาทเทียม
- เบื้องหลังการพัฒนาและเป้าหมายของ TPU v1 ได้กล่าวไว้ในโพสต์ก่อนหน้านี้ และในโพสต์นี้จะพิจารณาโครงสร้างและประสิทธิภาพของ TPU v1 อย่างละเอียดมากขึ้น
โครงสร้างและประสิทธิภาพ
- การออกแบบของ TPU v1 อ้างอิงสถาปัตยกรรมที่นำเสนอในบทความปี 1978 "Systolic Arrays (for VLSI)" ของ H.T Kung และ Charles E. Leiserson
- Systolic array ประกอบด้วยเครือข่ายของโปรเซสเซอร์ที่คำนวณข้อมูลเป็นจังหวะและส่งผ่านไปทั่วทั้งระบบ ทำให้สามารถคูณเมทริกซ์ได้อย่างมีประสิทธิภาพ
- Systolic array ของ TPU v1 ประกอบด้วยหน่วยคูณ/สะสมขนาด 256x256 และสร้างผลลัพธ์ที่ต้องการโดยอัตโนมัติ โดยไม่จำเป็นต้องบันทึกและดึงผลลัพธ์ระหว่างทางไปยังหน่วยความจำหลัก
Multiply/Accumulate Units (MACs)
- TPU v1 ทำการคูณจำนวนเต็ม 8 บิต x 8 บิต และใช้การควอนไทซ์ซึ่งต้องการพื้นที่ไดน้อยกว่าการคำนวณแบบ floating point
ชุดคำสั่ง
- TPU v1 ใช้ชุดคำสั่งแบบซับซ้อน (CISC) ราว 20 คำสั่ง และคำสั่งเหล่านี้ถูกส่งมาจากคอมพิวเตอร์โฮสต์ผ่านอินเทอร์เฟซ PCIe
- คำสั่งหลักประกอบด้วยการอ่านหน่วยความจำของโฮสต์ การอ่านน้ำหนัก การคูณ/รวมเมทริกซ์ การทำ activation และการเขียนกลับไปยังหน่วยความจำของโฮสต์
ซอฟต์แวร์
- ฮาร์ดแวร์ของ TPU v1 รองรับซอฟต์แวร์สแตกอย่าง Tensorflow เพื่อให้สามารถย้ายแอปพลิเคชันที่พัฒนาบน CPU และ GPU มายัง TPU ได้อย่างรวดเร็ว
การผลิตและได
- TPU v1 ผลิตด้วยกระบวนการ 28nm ของ TSMC และมีขนาดไดน้อยกว่าครึ่งหนึ่งของชิป Intel Haswell CPU และ Nvidia K80 GPU ที่ Google ใช้งานอยู่ในดาต้าเซ็นเตอร์
ประสิทธิภาพ
- TPU v1 ถูกออกแบบมาเพื่อทำให้การอนุมานมีประสิทธิภาพมากขึ้น และให้ความเร็วกับประสิทธิภาพพลังงานในการอนุมานดีกว่า Nvidia K80 GPU และ Haswell CPU ราว 15 ถึง 30 เท่า
บทเรียน
- สถาปัตยกรรมแบบปรับแต่งเฉพาะของ TPU v1 ทำให้ได้ประสิทธิภาพและการใช้พลังงานที่ดีกว่า CPU และ GPU สมัยใหม่อย่างมาก
- TPU v1 ถูกออกแบบโดยมีเป้าหมายเพื่อทำให้การอนุมานรวดเร็วและประหยัดพลังงาน ไม่ได้ออกแบบมาสำหรับการฝึกโมเดล
ความเห็นของ GN⁺
- การพัฒนา TPU v1 เป็นจุดเปลี่ยนสำคัญที่แสดงให้เห็นว่า Google หันไปใช้ฮาร์ดแวร์เฉพาะทางเพื่อเพิ่มประสิทธิภาพงานอนุมานในดาต้าเซ็นเตอร์ขนาดใหญ่
- สถาปัตยกรรม systolic array ช่วยปรับ data flow ให้เหมาะสมและลดการเข้าถึงหน่วยความจำให้เหลือน้อยที่สุด ซึ่งมีส่วนช่วยด้านประสิทธิภาพพลังงานและสมรรถนะ
- ความสำเร็จของ TPU v1 นำไปสู่การพัฒนา TPU อีกหลายเวอร์ชันในเวลาต่อมา และมีบทบาทสำคัญต่อความก้าวหน้าของฮาร์ดแวร์สำหรับ AI inference
- ผลิตภัณฑ์อื่นที่ให้ความสามารถคล้าย TPU ได้แก่ GPU ที่มี Tensor Core ของ Nvidia, Nervana NNP ของ Intel และ Inferentia ของ Amazon
- เมื่อนำเทคโนโลยี TPU มาใช้ ควรพิจารณาความเข้ากันได้กับโครงสร้างพื้นฐานเดิม ซอฟต์แวร์สแตก และระดับการปรับแต่งให้เหมาะกับแอปพลิเคชันเฉพาะ ข้อดีของการเลือก TPU คือความเร็วของงานอนุมานที่สูงขึ้นและประสิทธิภาพพลังงานที่ดีขึ้น แต่ก็อาจต้องมีการปรับแต่งให้เหมาะกับโมเดลหรือประเภทข้อมูลบางอย่าง
1 ความคิดเห็น
ความคิดเห็นจาก Hacker News