Step 3 - Installing the Vitis-AI runtime packages

ทำการเตรียมความพร้อมที่จะใช้งาน Vitis-AI บนบอร์ด FPGA

หลังจากที่เราทำการติดตั้ง Package ที่จะใช้งานในการ Compile โปรแกรม รวมถึงการใช้งานผ่าน Hardware module ที่เขียนไว้ โดยตัวโมดูลที่จะใช้งานกันบน FPGA วันนี้คือ DPU (Deep processing unit)arrow-up-right

โครงสร้างการทำงานของ DPU
การต่อ DPU ให้สามารถทำงานได้บนชิพ

เมื่อผู้ทดลองสามารถเข้าถึงบอร์ด Ultra96v2 ได้แล้ว เราจะเริ่มทำการติดตั้ง Package และเตรียม Hardware module เพื่อใช้งานร่วมกับโปรแกรมโดยเริ่มจาก

Step 3-1 : Setting Package for compile program

  1. ไปที่ WSL ที่ ssh ไปที่ Ultra96v2 แล้วพิมคำสั่งด้านล่าง เพื่อ copy ไฟล์ที่เรียกการใช้งาน Hardware module DPU ไปเตรียมทำงาน

  1. ทำการติดตั้งแพคเกจ Vitis-AI 1.4 runtime เพื่อใช้ในการ compile AI application ในการทำงานร่วมกับโมดูล DPU

ติดตั้ง library และ runtime ที่ต้องใช้
  1. ทำการตรวจสอบโมดูล DPU บนชิพ FPGA ว่าพร้อมทำงานไหม

สภานะการทำงานของ DPU

Step 3-2 : Inference Vitsi-AI on U96v2

  1. ทำการ optimize โมดูล DPU ให้เกิดข้อผิดพลาดในการแสดงผลลดลง

โดยทำการ รัน script นี้จะแก้ไขปัญหาสองอย่างคือ

  • แก้ไขพื้นที่ partition rootfs ให้เหมาะสมกับการใช้งาน

  • แก้ปัญหา Qos ในการใช้งานหน่วยความจำ DDR เพื่อให้สามารถทำงานในการแสดงภาพได้

  1. สำหรับกลุ่มทดลองที่มีสาย Display port ให้ทำการตั้งค่าตัวแปรในการแสดงภาพ

โดยตัว command นี้จะเป็นการตั้งค่าตัวแปรที่ใช้ใน LinuxOS เพื่อใช้ในการแสดงผลออกที่ตัว Display Port

  1. ตั้งค่า resolution ของจอแสดงผล

  1. ทำการปิด Debug message

  1. ทำการทดสอบ Vitis-AI-Library ในการทำงานของ AI application ร่วมกับ DPU

Step 3-3 : Inference Point cloud 3D detection on U96v2

แต่ในการทดลองนี้เราจะโฟกัสไปที่การใช้งาน Poinpillars เพื่อทำการทดสอบการวิเคราะห์ข้อมูลบนท้องถนนด้วย sensor Lidar ขั้นตอนต่อไปจะทดสอบเฉพาะผู้ที่กำลังต่อสายสาย DP และจออยู่เท่านั้น

  1. Command WSL2 ที่จะใช้ในการโยนไฟล์ pp_3d_detect.tar.gz ที่ดาวน์โหลดมาในตอนแรก ไปที่บอร์ด

circle-info

ดูที่เก็บไฟล์ให้ดีเพื่อทำการ copy path ที่เก็บไฟล์ไว้ โดยในหน้า File exporter ให้กด Ctrl + L

จากตัวอย่างไฟล์เก็บไว้ใน Download สิ่งที่ต้องแก้ไขคือ

[Name of your user] --> ชื่อของ User ที่เราใช้งานอยู่บน Windows แตกต่างกันไปตามแต่ละเครื่อง

[IP board] --> IP ของบอร์ด Ultra96v2 ที่เราจดไว้จาก step ที่ 2

  1. กลับไปที่ command ssh ของบอร์ด Ultra96v2 บนเครื่องคอมพิวเตอร์ของนิสิตแล้วทำการแตกไฟล์

  1. แก้ไขไฟล์ demo.cpp เพื่อแก้ไขโปรแกรม demo.cpp เพื่อใช้งาน Vitis-AI 1.4. โดยการเปลี่ยน header ของโปรแกรม

  1. แก้ไข Header ทำการ comment และเติม header ดัง code ด้านล่าง

  1. ออกจาก Vim โดยการกด Esc แล้วทำการพิมคำสั่ง

  1. แก้ไขไฟล์ build.sh เพื่อแก้ไขการ compile c++ และ OPENCV_FLAGS เป็น version ใหม่

  1. แก้ไขการ compile ดัง code ด้านล่าง

  1. ออกจาก Vim โดยการกด Esc แล้วทำการพิมคำสั่ง

  1. ทำการ compile code เพื่อเตรียมสำหรับการรัน

  1. ทำการรัน Application Point pillar detection

  • แสดงภาพ Object detection จาก application

  • แสดงภาพ Point pillar detection จาก application

  • แสดงทั้งสองผลลัพธ์ในหน้าจอ

จบกันไปแล้วสำหรับแลปในวันนี้นะครับ คิดว่าได้ความรู้อะไรไปบ้าง ลองไปเขียนอธิบายในบันทึกผลการทดลองดูนะครับ ซึ่งในคาบหน้าเราจะมาแกะเจ้าตัวโปรแกรมและ AI ที่รันกันไปในคาบนี้เพื่อให้เพิ่มความเข้าใจและทักษะโปรแกรม Embedded programing กันมากขึ้น

Last updated

Was this helpful?