Application C/C++ on Ultra96v2 Part 1
นำภาษา C/C++ ไปประยุกต์บนบอร์ด FPGA Ultra96v2 ด้วยการเร่งประสิทธิภาพของ AI ที่ใช้บนระบบไร้คนขับ
Last updated
Assoc. Prof. Wiroon Sriborrirux, Founder of Advance Innovation Center (AIC) and Bangsaen Design House (BDH), Electrical Engineering Department, Faculty of Engineering, Burapha University
นำภาษา C/C++ ไปประยุกต์บนบอร์ด FPGA Ultra96v2 ด้วยการเร่งประสิทธิภาพของ AI ที่ใช้บนระบบไร้คนขับ
Last updated
Figure | Name | Amount |
---|---|---|
1 | ||
| DisplayPort monitor | 1 |
| Laptop | 1 |
| SDcard | 1 |
| SDcard reader | 1 |
Name | Link |
---|---|
WSL2 |
|
Ubuntu 18.04 |
|
Vitis-AI 1.4 | |
Ultra96v2 image |
โดยในหัวข้อการทดลองนี้จะเป็นการนำ FPGA มาใช้งานจริงๆ โดยจะเน้นการใช้งานร่วมกับ Xilinx Vitis-AI 1.4 โดยจะเน้นไปที่สองเรื่องคือ การติดตั้ง environment ลงบนบอร์ดเพื่อทดสอบ AI ที่ใช้งานในโลกปัจจุบันบนบอร์ด Ultra96v2 ซึ่งเป็นบอร์ด FPGA โดยก่อนที่เราจะเริ่ม จะขอพาทุกท่านมาทำความเข้าใจตัวบอร์ด FPGA กันก่อนนะครับ จริงๆ แล้วรอบๆตัวเรามีการใช้งาน Processor หรือชิพประมวลผลอยู่รอบตัวเราโดยที่บางครั้งหลายคนอาจหลงลืมไปว่ามันอยู่ในชีวิตประจำวันเราเป็นปกติ เช่น ในโทรศัพท์ คอมพิวเตอร์ gadget ต่างๆ อาจกล่าวได้ว่าสิ่งที่ใช้งานในระบบดิจิทัลในปัจจุบันนั้นล้วนมี Processor เป็นของตัวเอง ซึ่ง Processor บางคนก็เรียกว่าตัวประมวลผล หรือชิพประมวลผล ซึ่งไม่ต่างกับสมองของทุกสิ่งที่คอยคิด คำนวณ สื่อสารข้อมูลมาให้ผู้ใช้อย่างเราๆได้ใช้งานกัน โดยเจ้าชิพประมวลผล หรือ Processor นี้แบ่งได้หลายแบบ โดยแบบที่เราสามารถพบเจอได้ทั่วไปในปัจจุบันก็คือ CPU, GPU หรือ FPGA ทุกท่านที่เคยผ่านงาน Hardware มาอาจคุ้นเคยกับคำเหล่านี้มาบ้าง แต่ท่านที่ยังไม่เคยเจอ ไม่ต้องตกใจครับ เราจะมาเล่าให้คุณฟังเอง
CPU (Central Processing Unit) เป็นชิพประมวลผลที่ใช้กันอย่างแพร่หลายในปัจจุบัน ซึ่งเปรียบเสมือนสมองที่คอยจัดการให้ทำงานสิ่งต่างๆ หลากหลายรูปแบบตามข้อมูลที่ได้รับ โดยภายในจะประกอบไปด้วย transistors จำนวนมากที่นำมาต่อกันเป็นวงจรในการประมวลผลโดยข้อมูลที่ใช้ในการประมวลผลจะเป็นแบบ bit หรือ 0 กับ 1 โดยจะสื่อสารกันด้วย address เพื่อไปติดต่อกับอุปกรณ์อื่นๆที่ทำงานร่วมกัน โดยถ้าอยากศึกษารายละเอียดเกี่ยวกับ CPU มากขึ้นสามารถ คลิกที่ [link]
GPU (Graphic processing unit) เป็นชิพที่นิยมในการใช้ในการประมวลผลเกี่ยวกับ parallel computing ซึ่งจะใช้ในการ render video เป็นหลักเราจะมักพบเห็นในการใช้งานในการเล่นเกมส์ แต่ในปัจจุบันในด้านการทำงานนอกจากใช้ในการออกแบบกราฟฟิค ก็มีการที่เริ่มนำมาใช้งาน AI แล้ว
FPGA (Field Programmable Gate Array) เป็นชิพประมวลผลประเภทหนึ่งที่ใช้งานเฉพาะด้านซึ่งจุดเด่นคือสามารถเปลี่ยนแปลงวงจรภายในตัวเองได้ต่างกับสองประเภทแรก โดยที่กินไฟน้อยกว่าและสามารถทำงานไปพร้อมๆกันได้ ซึ่งเป็นจุดเด่นของชิพประเภทนี้ แต่ข้อเสียคือมีข้อจำกัดในการทำงานตามที่เราตั้งค่าไว้