Accelerator Systems for AI
ในปัจจุบันเรากำลังเข้าสู่ยุคที่เรียกว่า digital transformation ซึ่งขึ้นอยู่กับการใช้ technology มาบริหารจัดการข้อมูลทางธรุกิจเพื่อ Analyze (วิเคราะห์) Predict (คาดการณ์) และ Improve (ปรับปรุง) จากข้อมูลที่มีอยู่
AI เป็นหัวใจสำคัญของ digital transformation ในธรุกิจต่าง ๆ ไม่ว่าจะเป็น
- Data Center
- Autonomous Driving
- Aerospace
- Video Analytics
- Healthcare
- Finance
เมื่อ AI เข้ามามีบทบาทมากขึ้น ช่วยให้ประมวลผลการทำงานได้รวดเร็ว ใช้พลังงานต่ำ และตอบโจทย์ความต้องการทางธุรกิจและนำไปประยุกต์ในธรุกิจต่าง ๆ ได้สะดวกมากยิ่งขึ้น
ในบทความนี้จะกล่าวถึงหัวข้อ ดังต่อไปนี้
- ทำไม FPGA Accelerator ถึงเหมาะกับงานด้าน AI
- นำ FPGA Accelerator มาใช้กับงาน AI ได้อย่างไร
- ตัวอย่างของ AI Application ที่ใช้ FPGA
ทำไม FPGA Accelerator ถึงเหมาะกับงานด้าน AI
- Adaptive Computing Architectures: ด้วยสถาปัตยกรรมของ FPGA ที่มีความสามารถด้านปรับเปลี่ยนการประมวลผลได้ง่ายและรวดเร็ว
- Fully programmable control flow and data flow: สามารถออกแบบ control flow และ data flow ของระบบได้ทั้งหมด ตั้งแต่การเชื่อมต่อหรือควบคุมอุปกรณ์ภายนอก ไปจนถึงการประมวลผลข้อมูลด้วย AI ภายในระบบ
- High performance/Low latency/Nano-seconds time precision: FPGA มีประสิทธิภาพสูง response time ต่ำ มีความแม่นยำระดับนาโนวินาที (Nanosecond) สามารถพัฒนาระบบที่ทำงานแบบ real-time ได้
- Power efficient: ใช้พลังงานต่ำกว่าระบบที่ใช้ CPU หรือ GPU
ตัวอย่างการเปรียบเทียบ AI Inference Application สำหรับตรวจจับทะเบียนรถยนต์ (License plate recognition) โดยเปรียบเทียบระหว่าง Edge AI platform ของ Xilinx และ NVIDIA Jetson
การตรวจจับป้ายทะเบียน
Kria K26 SOM Module ที่มี FPGA และ AI Engine สามารถประมวลผล AI Inference สูงถึง 1.4 TOPS และได้รับการกล่าวถึงว่าสามารถพัฒนาแอปพลิเคชัน AI ด้านการ Machine Vision ได้มีประสิทธิภาพที่สูงกว่า 3 เท่า มีเวลาแฝง (latency) และการใช้พลังงานที่ต่ำกว่า เมื่อเปรียบเทียบกับ SOM ที่ใช้ GPU เปรียบเทียบกับ Nvidia Jetson Nano และมีประสิทธิภาพเทียบเท่ากับ Jetson TX2i แต่ใช้พลังงานเพียงครึ่งเดียว
จะเห็นได้ว่า ถ้ามีการออกแบบระบบที่ดี Xilinx มีข้อดีมากกว่า ทั้งในด้าน FPS performance, performance per Watt และ Cost per video stream
สำหรับ Neural Network MobileNetV2 จะเห็นว่า FPS performance บน Xilinx สูงเป็น 2 เท่า เมื่อเทียบกับ NVIDIA Jetson โดยตัวอย่างของ application ที่ใช้ MobileNetV2 neural network ได้แก่
- Real-time video recognition on edge devices: การจดจำวิดีโอแบบเรียลไทม์บน edge devices
- MobileNetV2 based hand gesture recognition: การจดจำท่าทางด้วยมือบน MobileNetV2 (ไม่รวมการประมวลผลเฟรมล่วงหน้า)
AI บนระบบ Server หรือ Cloud Computing
นอกจากงานด้าน Edge Computing แล้ว FPGA Accelerator ในรูปแบบของ Accelerator Card ยังมีประสิทธิภาพในการทำ AI Inference สูงกว่า GPU โดยเมื่อเปรียบเทียบ Performance ของ Neural Network Reset50 บน Xilinx VCK5000 AI Accelerator Card กับ NVIDIA GPU A100 หรือ A30 Card จะเห็นว่า FPGA มีประสิทธิภาพสูงกว่าและใช้พลังงาน (Watt) น้อยกว่าด้วย
นำ FPGA มาใช้สำหรับงานด้าน AI ได้อย่างไร
โดยปกติแล้วการใช้ FPGA จำเป็นต้องมีความรู้ด้าน Hardware อยู่ด้วยพอสมควร แต่ตอนนี้ได้มีเครื่องมือสำหรับนักพัฒนา AI ให้สามารถนำความได้เปรียบของ FPGA ไปใช้งานได้ง่ายขึ้น โดยไม่จำเป็นต้องมีความรู้ด้าน FPGA Hardware มากนัก เพื่อที่จะสามารถพัฒนาโดยใช้รูปแบบของ Software ได้มากขึ้น
Xilinx Vitis AI: FPGA AI Accelerator Development Tool
เครื่องมือพัฒนาที่เรียกว่า Vitis AI สามารถใช้ในการพัฒนาระบบ AI Inference บน platform ต่าง ๆ ของ Xilinx ท้ัง ชิป FPGA, Accelerator Card หรือ Alveo Card, Embeded Systems board หรือ KRIA board
ซึ่งประกอบด้วย AI model ที่ pre-trained และ optimized มาแล้วสำหรับ platform Xilinx, AI Library, Tool ที่จำเป็น และ design ตัวอย่างสำหรับ Edge AI และ Server หรือ Cloud AI
Xilinx Vitis AI เป็น development tool สำหรับพัฒนา AI Inference Application บน Xilinx platform ที่รองรับการทำงานของ Frameworks ที่นิยมใช้ในการพัตนา AI model เช่น TensorFlow, Caffe และ PyTorch
ประกอบด้วย
- Vitis AI model ที่ pre-trained และ pre-optimized ให้พร้อมใช้งานบน Xilinx platform
- Vitis AI development kit ประกอบด้วย module ต่าง ๆ เพื่อใช้ Customize AI model ใหม่ ๆ ให้เหมาะกับการทำงานบน Xilinx platform
- Deep Learning Processing Unit คือ AI Inference Engine ที่ optimized ให้เหมาะกับการทำงาน ทั้งแบบ Edge และ Cloud Computing บน Xilinx platform
ซึ่งออกแบบมาให้ใช้งานง่าย และช่วยให้สามารถพัฒนาเพิ่มประสิทธิภาพของ AI Inference บน Xilinx platform ได้อย่างมีประสิทธิภาพ
Vitis AI Optimizer
เป็นโมดูลที่ช่วยในการลดขนาดของ AI model ได้ถึง 90% โดยที่ยังรักษาความแม่นยำในระดับที่เหมาะสมได้ การลดขนาดของ AI model จะช่วยเพิ่ม performance ลดพื้นที่หน่วยความจำของ AI Inference ได้อย่างมาก
World’s leading model compression
- Iterative, coarse-grained pruning
- Reduce model size 5-30x
- Increase performance 2-10x
- Minimal accuracy loss, <1%
Supported framework
- Caffe, Darknet, TensorFlow
Commercial license available
- Contact Xilinx sales representative
Vitis AI Quantizer
เป็นโมดูลที่ช่วยในการแปลงการคำนวณใน AI model จากการใช้จำนวนเลขทศนิยม (floating point) ไปใช้จำนวนเต็มแบบ integer 16bit (INT16) หรือ 8bit (INT8) และช่วยปรับจูน (fine tuning) ให้ได้ค่า weight แบบ INT16 หรือ INT8 ที่เหมาะสม
Uniform symmetric quantization
- 8bit for both weights and activation
Support both calibration and finetune
- Calibration – A small set of training data
- Finetune – Original training data, further increase accuracy
Support framework
- Caffe, Tensorflow
- Pytorch (Q2, 2020)
Have both GPU and CPU version
- GPU version is 10x faster than CPU version
Vitis AI Compiler
เป็นโมดูลที่ใช้ในการ compile AI model ที่ผ่านการ optimize และ quantize ให้สามารถทำงานร่วมกับ DPU หรือ Deep Learning Processing Unit บน Xilinx platform ได้
Maps the quantized model to instruction set and data flow
- High-efficient tensor-level DPU instruction set
Performs sophisticated optimizations
- Layer fusion and decomposition
- Instruction scheduling
- Reuses on-chip memory as much as possible
Support framework
- Caffe, Tensorflow
- Pytorch (Q2, 2020)
Vitis AI Profiler
เป็นโมดูลสำคัญที่ใช้ในการวิเคราะห์การทำงานของ AI Inference แสดงรายละเอียดการทำงานต่าง ๆ เช่น execution time, latency, จำนวน pipeline และ clock cycle เราสามารถใช้ข้อมูลส่วนนี้ในการปรับจูนการทำงานให้ได้ประสิทธิภาพสูงสุด
- DPU Summary: ตารางจำนวนการรันและเวลาต่ำสุด/เฉลี่ย/สูงสุดสำหรับแต่ละ kernel
- DPU Throughput and DDR Transfer Rates: กราฟเส้นของ FPS ที่บรรลุและอัตราการถ่ายโอนการอ่าน/เขียน (MB/s) ตามตัวอย่างระหว่างแอปพลิเคชัน
- Timeline Trace: ซึ่งจะรวมถึงเหตุการณ์ที่หมดเวลาจาก VART, HAL API และ DPU
Performance optimization with AI profiling
การใช้ AI profiling มีส่วนสำคัญที่จะช่วยเพิ่มประสิทธิภาพของการทำงานของ AI Inference บน Xilinx platform จะเห็นได้ว่า ก่อนทำการ optimize ระบบมี performance อยู่ที่ 11 FPS
จากการ profiling แล้วปรับจูนโดยการเพิ่ม pipeline, AI optimizer ปรับลดขนาด AI model และมีการใช้ Logic ของ FPGA ในการทำ image processing แทน CPU จะช่วยเพิ่ม performance ของระบบให้ทำงานแบบ real-time ตาม FPS ของกล้องได้คือ 30FPS หรือเพิ่มเป็นเกือบ 3 เท่า จากระบบเดิม
Deep Learning Processing Unit หรือ DPU
ซึ่งเป็น AI Inference Engine ที่เปรียบเสมือนเป็น Tensor processor ที่ programable และ scalable สำหรับ Xilinx platform รองรับการทำงานของ AI workload แบบต่าง ๆ ได้อย่างมีประสิทธิภาพ
Convolutional Neural Network (CNN)
- Classification: การจำแนกประเภท
- Objective detection: การตรวจจับวัตถุประสงค์
- Segmentation: การแบ่งส่วน
Long Short-Term Memory (LSTM)
- Speech recognition: การรู้จำเสียง
- Image/Video sequence recognition: การจดจำลำดับภาพและวิดีโอ
Machine Learning (ML)
- Prediction: การคาดการณ์
- Recommendation: คำแนะนำ
ตัวอย่างของ AI Application ที่ใช้ FPGA
Image & Video Analytics
สำหรับระบบจราจร ความปลอดภัย หรือสำหรับเมืองอัจริยะ (Smart City) Xilinx มี FPGA Accelerator Card รุ่นต่าง ๆ ให้เลือกใช้งานตามความเหมาะสม
Robotic หรือ Automation
FPGA ชิป แบบ System On Chip ของ Xilinx สามารถทำงานเป็นระบบสมองกลฝังตัว พร้อมด้วย AI Interface Engine ประสิทธิภาพสูง สามารถนำไปใช้ในการ Robotic หรือ Factory Automation ได้ในชิปเดียว
Aerospace
ด้านการบินและอวกาศ ที่ต้องการระบบสมองกลฝังตัวที่มี AI Inference engine
- Computer Vision: เพื่อตรวจจับวัตถุจาก Drone หรือดาวเทียม
- Flight Control: ควบคุมการบินของ Drone แบบอัตโนมัติ หรือระบบนำร่องอัตโนมัติของกระสวยอวกาศ
- Self-Driving: ยานยนต์ไร้คนขับสำหรับการสำรวจพื้นผิวดาวเคราะห์ต่าง ๆ
DG’s Turnkey Accelerator Systems
สำหรับท่านที่สนใจพัฒนา AI Application โดยใช้ FPGA Accelerator ทางบริษัทดีไซน์เกทเวย์ เป็นตัวแทนจำหน่ายประเภท Value-Added Reseller รายแรกในประเทศไทย สำหรับผลิตภัณฑ์ต่าง ๆ ของ Xilinx Platform
นอกจากนี้เรายังผลิตและจำหน่าย Turnkey Accelerator Systems ซึ่งเป็น Tower Case Workstation ที่ติดตั้ง FPGA Accelerator Card มาพร้อมกับ AI Development Tools ของ Xilinx ช่วยให้นักพัฒนาด้าน AI สามารถนำไปพัฒนา AI Application ได้ทันที โดยไม่จำเป็นต้องเสียเวลาติดตั้งระบบเอง
Accelerator Systems for AI Part 2
Youtube channel: https://www.youtube.com/c/Dgwayweb