โครงการ OpenTPU ของ UC Santa Barbara ArchLab ซึ่งเป็นการพัฒนาแบบโอเพนซอร์สของ Tensor Processing Unit ของ Google ได้ดำเนินการพัฒนาอย่างเงียบๆ ต่อเนื่องมาเกือบแปดปีนับตั้งแต่เปิดตัวครั้งแรก การหารือของชุมชนเมื่อเร็วๆ นี้ได้เน้นย้ำทั้งความยืนหยุ่นของโครงการและวิวัฒนาการอย่างรวดเร็วของเทคโนโลยี TPU ของ Google นับตั้งแต่เอกสารวิจัยต้นฉบับปี 2017 ที่เป็นแรงบันดาลใจให้กับความพยายามทางวิชาการนี้
โครงการแสดงความยืนยาวที่น่าประหลาดใจแม้จะมีอายุมาก
แม้ว่า repository ต้นฉบับของ OpenTPU จะดูเหมือนไม่มีการพัฒนา แต่สมาชิกชุมชนได้ค้นพบว่าการพัฒนาที่ยังคงดำเนินอยู่ได้ดำเนินต่อไปใน project forks โดยมี commits ล่าสุดเมื่อสามชั่วโมงก่อนการหารือ ความยืนหยุ่นนี้ถือเป็นสิ่งที่น่าทึ่งสำหรับโครงการทางวิชาการที่เริ่มต้นเป็นความพยายามในการ reverse-engineering โดยอิงจากข้อมูลสาธารณะที่จำกัดเกี่ยวกับชิป TPU รุ่นแรกของ Google
โครงการยังคงมุ่งเน้นไปที่ความสามารถเฉพาะการ inference ของ datacenter TPU ต้นฉบับของ Google ซึ่งถูกออกแบบมาโดยเฉพาะสำหรับการรันการคำนวณเครือข่ายประสาทเทียมมากกว่าการฝึกสอนพวกมัน การมุ่งเน้นที่แคบนี้สะท้อนถึงรายละเอียดทางเทคนิคที่จำกัดที่มีอยู่เมื่อโครงการเริ่มต้น เนื่องจาก Google ยังไม่ได้เผยแพร่ข้อกำหนดที่ครอบคลุมสำหรับซิลิกอนที่กำหนดเองของพวกเขา
ชุดคำสั่ง OpenTPU:
- RHM: Read Host Memory - อ่าน N เวกเตอร์จากหน่วยความจำโฮสต์ไปยัง Unified Buffer
- WHM: Write Host Memory - เขียน N เวกเตอร์จาก UB ไปยังหน่วยความจำโฮสต์
- RW: Read Weights - โหลดไทล์น้ำหนักจาก DRAM
- MMC: Matrix Multiply/Convolution - ดำเนินการคำนวณเมทริกซ์
- ACT: Activate - ใช้ฟังก์ชันการกระตุ้น (ReLU, sigmoid)
- NOP: No operation - ไม่มีการดำเนินการ
- HALT: Stop simulation - หยุดการจำลอง
ชุมชนเน้นความสับสนเกี่ยวกับรุ่นต่างๆ ของ TPU
การหารือทางเทคนิคเผยให้เห็นความสับสนอย่างแพร่หลายเกี่ยวกับ TPU ประเภทต่างๆ ที่ Google ได้พัฒนาขึ้นในช่วงหลายปีที่ผ่านมา สมาชิกชุมชนสังเกตว่าหลายคนเข้าใจผิดระหว่างอุปกรณ์ Edge TPU ของ Google ที่ออกแบบมาสำหรับแอปพลิเคชันมือถือและฝังตัว กับ datacenter TPU ขนาดใหญ่ที่ใช้สำหรับการฝึกโมเดล AI ขนาดใหญ่
เว็บไซต์สับสนระหว่าง inference engine ใน Edge TPU กับ datacenter TPU พวกมันเป็นโครงการที่ไม่เกี่ยวข้องกันสองโครงการ
ความสับสนนี้เกิดจากการใช้แบรนด์ TPU ของ Google ในหมวดหมู่ผลิตภัณฑ์ที่แตกต่างกันอย่างมาก ตั้งแต่ชิป edge computing ขนาดเล็กไปจนถึงคลัสเตอร์ซูเปอร์คอมพิวเตอร์ขนาดห้อง
ความสามารถของ TPU สมัยใหม่เกินกว่าการออกแบบต้นฉบับอย่างมาก
ความแตกต่างระหว่างความสามารถของ OpenTPU และ Google TPU สมัยใหม่แสดงให้เห็นว่าฮาร์ดแวร์ AI มีวิวัฒนาการอย่างรวดเร็วเพียงใด ในขณะที่ OpenTPU รองรับการคูณเมทริกซ์พื้นฐานและฟังก์ชันการเปิดใช้งานง่ายๆ เช่น ReLU และ sigmoid แต่ขาดการดำเนินการ convolution, pooling และ programmable normalization ที่เป็นมาตรฐานใน AI accelerator ร่วมสมัย
Google TPU สมัยใหม่ได้วิวัฒนาการไปไกลเกินกว่าการออกแบบเฉพาะ inference ที่เป็นแรงบันดาลใจให้กับ OpenTPU รุ่นปัจจุบันจัดการทั้งการฝึกสอนและการ inference สำหรับโมเดลภาษาขนาดใหญ่ โดยระบบ TPU v4 มี memory bandwidth มากกว่า 1,200 GB/s เมื่อเปรียบเทียบกับข้อกำหนดที่เจียมเนื้อเจียมตัวมากกว่าของ TPU ต้นฉบับปี 2015
การเปรียบเทียบวิวัฒนาการของ TPU:
รุ่น | แบนด์วิดท์หน่วยความจำ | การใช้งานหลัก | ปี |
---|---|---|---|
TPU v1 (รุ่นแรก) | ไม่ระบุ | การอนุมานเท่านั้น | 2015 |
TPU v3 | 900 GB/s | การฝึกฝนและการอนุมาน | ~2018 |
TPU v4 | 1,200 GB/s | การฝึกฝนและการอนุมาน | ~2020 |
คุณค่าทางวิชาการยังคงอยู่แม้จะมีช่องว่างทางเทคโนโลยี
แม้จะอิงจากเทคโนโลยีที่มีอายุเกือบทศวรรษ แต่ OpenTPU ยังคงให้บริการวัตถุประสงค์ทางการศึกษาสำหรับนักศึกษาและนักวิจัยที่ศึกษาสถาปัตยกรรมคอมพิวเตอร์ โครงการให้การดำเนินงานที่สมบูรณ์และใช้งานได้จริงที่แสดงให้เห็นแนวคิดพื้นฐานของ systolic arrays, specialized memory hierarchies และ deterministic execution models ที่ยังคงมีความเกี่ยวข้องในการออกแบบ AI accelerator สมัยใหม่
การใช้ PyRTL ของโครงการสำหรับการอธิบายฮาร์ดแวร์ยังทำให้เข้าถึงได้สำหรับนักวิจัยที่อาจไม่คุ้นเคยกับภาษาอธิบายฮาร์ดแวร์แบบดั้งเดิมเช่น Verilog หรือ VHDL
ข้อมูลจำเพาะทางเทคนิคของ OpenTPU:
- หน่วยคูณเมทริกซ์: อาร์เรย์ที่ปรับพารามิเตอร์ได้ของตัวคูณจำนวนเต็ม 8 บิต
- การกำหนดค่าเริ่มต้น: ขนาดเมทริกซ์ 8x8 หรือ 16x16 (สามารถกำหนดค่าได้สูงสุด 256x256)
- หน่วยความจำ: Unified Buffer และ Accumulator Buffers (ขนาดสามารถกำหนดค่าได้)
- การดำเนินการที่รองรับ: การคูณเมทริกซ์, ReLU, sigmoid activation
- คุณสมบัติที่ขาดหายไป: Convolution, pooling, programmable normalization
ทิศทางอนาคตและเทคโนโลยีที่เกิดขึ้นใหม่
การหารือของชุมชนได้ขยายไปเกินกว่าการดำเนินงานซิลิกอนแบบดั้งเดิมเพื่อสำรวจทางเลือกที่แปลกใหม่เช่นโปรเซสเซอร์ที่ใช้ carbon nanotube และ quantum processing units งานวิจัยล่าสุดชี้ให้เห็นว่า TPU ที่สร้างด้วยทรานซิสเตอร์ carbon nanotube อาจสามารถบรรลุ 1 tera-operations ต่อวินาทีต่อวัตต์ใน manufacturing nodes รุ่นเก่า แม้ว่าเทคโนโลยีดังกล่าวยังคงเป็นการทดลองเป็นส่วนใหญ่
โครงการ OpenTPU ยืนหยัดเป็นเครื่องพิสูจน์ถึงคุณค่าของการวิจัยฮาร์ดแวร์โอเพนซอร์ส แม้เมื่ออิงจากข้อมูลที่ไม่สมบูรณ์เกี่ยวกับการออกแบบที่เป็นกรรมสิทธิ์ แม้ว่ามันอาจไม่เคยเทียบเท่าความสามารถของ TPU รุ่นล่าสุดของ Google แต่ก็ยังคงให้ข้อมูลเชิงลึกเกี่ยวกับหลักการพื้นฐานที่ขับเคลื่อนการเร่งความเร็ว AI สมัยใหม่
อ้างอิง: UCSB ArchLab OpenTPU Project