รีวิว AI และ LLM บน Rockchip RK3588 ด้วย Mixtile Blade 3 ซิงเกิ้ลบอร์ดที่มี RAM 32GB

Mixtile เป็นบริษัทที่พัฒนาฮาร์ดแวร์โซลูชั่นสำหรับงานหลายๆด้านทั้ง IoT, AI และ Industrial gateway ซึ่งทาง Mixtile ได้ส่งผลิตภัณฑ์ที่ชื่อว่า Mixtile Blade 3 ซึ่งเป็นบอร์ดที่ออกแบบมาน่าสนใจมาก เพราะเป็น RK3588 ที่มี RAM สูงถึง 32 GB และยังมีความน่าสนใจอื่น ๆ อีกที่รอการรีวิว น่าสนใจยังไงมาลองติดตามไปด้วยกัน ตั้งแต่แกะกล่อง ,ทดสอบใช้งาน RKNPU จนถึงลองใช้งาน LLM บน Mixtile Blade 3 นี้กันเลยดีกว่า

แกะกล่อง Mixtile Blade 3

ในกล่องพัสดุที่ทาง Mixtile ส่งมาให้ประกอบด้วยกล่องกระดาษสองกล่อง กล่องแรกคือบอร์ด  Mixtile Blade 3 และกล่องที่สองคือ Mixtile Blade 3 Case

mixtile RK3588 sbc box

เรามาแกะกล่องแรกคือบอร์ด Mixtile Blade 3 กันก่อน เมื่อแกะกล่องก็จะพบกับบอร์ดที่ค่อนข้างมีน้ำหนักเลย พอหยิบมาดูก็พบว่าเพราะมีการใส่ Heat sink ขนาดใหญ่เท่ากับบอร์ดไว้ด้านล่างเพื่อระบายความร้อนจาก RK3588  โดยไม่ต้องใช้พัดลม

mixtile blade 3 and case un box

mixtile blade 3 bottom view

เมื่อมาดูอุปกรณ์เชื่อมต่อก็พบว่า มี HDMI 2 ช่องสำหรับเป็น input และ output, Ethernet จำนวน  2 ช่องเช่นเดียวกัน, USB Type-C สองช่อง,  GPIO 30 ขา, มีช่องคอนเน็คเตอร์แบบ U.2(SFF-8639) สำหรับต่อกับอุปกรณ์ที่เป็น  PCIe/NVMe, คอนเน็คเตอร์ Mini-PCIe, คอนเน็คเเตอร์ MIPI-CSI, ซ็อกเก็ต Micro SD, คอนเน็คเตอร์ต่อพัดลมระบายความร้อน และคอนเน็คเตอร์สำหรับต่อ UART เพื่อ debug

mixtile blade 3 peripheral connector

จากนั้นเรามาแกะกล่องของ Mixtile Blade 3 Case กันต่อก็พบว่าเป็นเคสอลูมิเนียมแบบ CNC ที่มาพร้อมกับ adaptor สำหรับต่อเข้ากับคอนเน็คเตอร์ U.2 เป็น M.2 NVMe และปุ่มเปิดปิดรวมถึงไฟ LED บอกสถานะการทำงาน

mixtile blade 3 case accessories

โดยเราจะมาลองประกอบบอร์ด Mixtile Blade 3 เข้ากับเคส กันต่อไป โดยขั้นแรกที่ต้องทำคือการถอด heat-sink เดิมออกก่อน จากนั้นทำการประกอบ adaptor เข้ากับบอร์ดและใส่ลงในเคส ปิดท้ายด้วยการปิดฝาพร้อมด้วย silicon thermal pad เพื่อฝาปิดนี้จะทำหน้าที่ระบายความร้อนจากบอร์ดมายังเคสทั้งชิ้น

mixtile RK3588 sbc case u2 adaptor mixtile blade 3 final assembly

ซึ่งจะพบว่าไม่มี power adaptor มาด้วยการทำงานของบอร์ด Mixtile Blade 3 ต้องการ USB-C ที่สนับสนุนมาตรฐาน PD2.0/PD3.0 จึงจะทำงานได้

คุณสมบัติ

  • CPU: เป็น Rockchip  RK3588 สถาปัตยกรรม Cortex-A76/A55 แบบ 8 คอร์
  • NPU: สูงสุด  6 TOPS
  • Memory:
    • รองรับ RAM สูงสุดที่ 32 GB แบบ LPDDR4/LPDDR5
    • การเก็บข้อมูลแบบ eMMC ความจุสูงสุด 256 GB
  • HDMI interface:
    • HDMI 2.1 output (8K @ 60 FPS or 4K @ 120 FPS)
    • HDMI 2.0 input (4K @ 60 FPS)
  • Video encoder: รองรับการเข้ารหัสวิดีโอแบบ H.264/H.265  ความละเอียดสูงสุด  8K ที่ 30 FPS
  • Video decoder: รองรับการถอดรหัสวิดีโอแบบH.265/H.264/VP9 vความละเอียดสูงสุด 8K ที่ 60 FPS
  • Camera Input:  รองรับ MIPI-CSI แบบ 4-lane และ USB webcam
  • PCIe expansion: Mini-PCIe socket แบบ PCIe Gen 2.1 และรองรับ USB2.0
  • Storage expansion:
    •  PCIe Gen 3 แบบ 4-lane ผ่านคอนเน็คเตอร์แบบ U.2 port
    • SATA 3.0 ผ่าน  U.2 port และ Micro-SD 3.0 ซ็อกเก็ต
  • Ethernet:  gigabit Ethernet ports จำนวน 2 ช่องแบบความเร็ว 2.5 Gbps
  • USB:
    • USB 3.2 Gen 1 Type-C ports จำนวน 2 ช่อง
    • รอบรับ DisplayPort 1.4 A
  • GPIOs: 30 พิน
    • รอบรับ Digital I/O, I²C, USB 2.0, TTL UART, SPI, I²S
  • ซอฟต์แวร์สนับสนุน: ติดตั้ง Ubuntu 22.04 มาในเครื่อง
    • สนับสนุน Linux distributions อื่นๆ และ Android 12
  • การจ่ายหลังงาน: USB1/PD Type-C Port ที่รองรับ USB PD 2.0 protocol
    • (ทางเลือก: ไฟดีซี 12 V ผ่านทาง U.2 port)
  • ขนาด:  Pico-ITX form factor หรือ 100 x 72 มิลลิเมตร
  • การใช้พลังงาน:  สูงสุด 10 W
  • ช่วงอุณหภูมิในการทำงาน 0 ถึง  +80°C

การติดตั้ง OS และทดสอบการใช้งานเบื้องต้น

เนื่องจาก  Mixtile Blade 3 มีการติดตั้งระบบปฎิบัติการมาให้เป็น Ubuntu 22.04 อยู่แล้วเราจึงสามารถใช้งานได้ทันทีหลังจากบูตเข้าระบบ แต่หากต้องการจะติดตั้งระบบปฎิบัติการใหม่สามารถทำได้เหมือนการติดตั้งซิงเกิ้ลบอร์ดที่ใช้ SoC ของ Rockchip อื่นๆ คือการติดตั้งผ่าน RKDevTool หรือติดตั้งผ่าน Micro SD

เนื่องจาก Mixtile Blade 3 มี USB พอร์ตให้ใช้งานเพียงสองช่อง ช่องแรกต้องใช้ในการจ่ายไฟให้กับบอร์ด ทำให้เราเหลือ USB C เพียงช่องเดียวจึงจำเป็นต้องมี USB C hub ในการเชื่อมต่อกับคีย์บอร์ดและเม้าส์ด้วย

mixtile blade 3 with full connected

หลังจากบูตจะเป็นหน้าการตั้งค่าแบบทั่วไปของ Ubuntu หลังจากการตั้งค่าเสร็จสิ้น เราจะสามารถเข้ามาใช้งาน Desktop ของ Ubuntu 22.04 ได้ทันที
โดยเมื่อตรวจสอบขนาดของพื้นที่เก็บข้อมูลก็พบว่าเป็น eMMC ขนาดความจุ 128GB และตรวจพบ SSD ขนาด 256GB ที่ต่อเพิ่มเข้าไปด้วย


ในส่วนของหน่วยความจำจะพบว่ามีขนาดความจำอยู่ที่ 32GB ซึ่งถือว่าสูงมากสำหรับ SBC

การทดสอบประสิทธิภาพ AI ผ่าน NPU ด้วย RKNPU2

ในการทดสอบประสิทธิภาพ AI ของ Mixtile Blade 3 เราจะทำการทดสอบเทียบกับผลจาก RockChip  RK3568 ทีมี NPU ขนาด 0.8 TOPS โดยการทดสอบบนตัวอย่างของ RKNPU2 ในส่วนของ yolov5_demo และ RKNN Benchmark ซึ่งเราเคยทดสอบไว้แล้วกับ youyeeyoo YY3568

โดยหลังจากติดตั้ง RKNN toolkit2 จาก Github เรียบร้อยแล้ว เราจะทำการ compile ตัวอย่างของ YOLO5


จากนั้นทำการทดสอบผลการตรวบสอบวัตถุด้วย YOLO5


YOLO5 output rknn rk3588

ซึ่งเมื่อนำค่าที่ได้ไปเปรียบเทียบกับผลลัพธ์จาก RK3568 จะพบความแตกต่างดังนี้

บอร์ดทำงานหนึ่งครั้งค่าเฉลี่ย 10 ครั้ง
Mixtile Blade 325.523000 ms18.620700 ms
RK3568 อื่น78.917000 ms 69.709700 ms

ซึ่งประสิทธิภาพที่วัดได้บอร์ด Mixtile  Blade 3 มากกว่า RK3568 มาก โดยใช้เวลาน้อยกว่า RK3568 ที่เคยทดสอบ 3 เท่า คิดออกมาเป็นหน่วย FPS จะอยู่ที่ 54 FPS ซึ่งถือว่าประมวลผลได้เร็วมาก

จากนั้นเราจะมาลองทดสอบประสิทธิภาพของ NPU บน Mixtile Blade 3 ด้วยตัวอย่าง RKNN Benchmark ที่อยู่ใน examples โดยระบุให้ทำการวนทดสอบ 10 ครั้งแล้วหาค่าเฉลี่ย


ข้อมูลที่ได้จากการทดสอบ benchmark จะพบว่าค่า FPS เฉลี่ยจะอยู่ที่ 63.123 เฟรมต่อวินาที แสดงให้เห็นถึงประสิทธิภาพของบอร์ด Mixtile Blade 3 ว่าเหมาะสมกับการนำมาใช้งานเป็น Edge คอมพิวเตอร์ในงาน AI ด้าน image processing หรือ machine learning

และเพื่อให้เห็นถึงประสิทธิภาพของ  Mixtile Blade 3 มากขึ้น เราจะทดสอบ Yolo5 จากกล้องกันบ้าง โดยจะทดสอบประมวลผลวิดีโอที่สตรีมาแบบ RTSP เหมือนกันงานประมวลผล Edge AI ที่ใช้กันทั่วไป  โดยเริ่มจากสร้าง RTSP server บนตัวของ Mixtile Blade 3 เองเลยโดยการติดตั้งบน Github

และทำการตั้งค่าในไฟล์ mediamtx.yml ให้สตรีมภาพจากกล้องเว็บแคมที่ความละเอียด 640×640 การเข้ารหัสเป็น h.264


จากนั้นทดสอบการทำงานด้วยคำสั่ง


ข้อมูลการ detect จะแสดงใน log file เนื่องจากไม่ได้ใช้ open CV ในการทดสอบ จึงทำเป็นแค่การวาดกรอบรอบวัตถุที่ตรวจพบเท่านั้น


จากคลิปวิดีโอแสดงให้เห็นถึงประสิทธิภาพการประมวลที่ดี ได้อัตราเฟรมเรตที่สูง ภาพลื่นไหลไม่มีการกระตุกของภาพให้เห็นแต่อย่างใด

ทดสอบประสิทธิภาพการใช้งาน LLM บน Mixtile Blade 3

จากนั้น เราจะมาทดสอบการใช้งาน LLM บน Mixtile Blade 3 กันต่อ โดยต้องเล่าก่อนว่าบนบอร์ด Mixtile Blade 3 ใช้ SoC RK3588 จึงมี GPU เป็น Mali G610 ซึ่งมีหลายคนได้ทดสอบใช้งาน  LLM บน Mali G610 กันแล้ว
โดยในตอนแรกเราได้พยายามทดสอบตามคำแนะนำบน Github แต่ไม่ประสบผลสำเร็จ แต่สุดท้ายก็พบกับบทความแนะนำการทดลองใช้งาน LLM บน RK3588  เลยสามารถทดสอบได้โดยตัว docker มีการสร้างมาโดยใช้โมเดล RedPajama-INCITE-Chat-3B-v1-q4f16_1 และ Llama-2-7b-chat-hf-q4f16_1 แต่เราวางแผนที่จะทำการทดสอบด้วยโมเดล Llama-2-13b-chat-hf-q4f16_1 เพิ่มเติมด้วย เพื่อดูประสิทธิภาพว่าที่ 13 พันล้าน parameter จะใช้ RAM ในการทำงานเยอะแค่ไหน และการใช้งานจริงสามารถทำได้หรือไม่

ทดสอบกับโมเดล RedPajama-INCITE-Chat-3B-v1-q4f16_1

เริ่มต้นด้วยการสั่งเริ่มการทำงานของ docker


และทำการถามด้วย prompt  “Explain why free electrons in an insulator cannot jump over the energy gap to the conduction band”


ซึ่งในขณะที่ระบบทำการประมวลผลโมเดล RedPajama-INCITE-Chat-3B-v1-q4f16_1 จะใช้ RAM อยู่ที่ 3.9G

CPU memory usage llm model3b mixtile blade 3 rk3588

ทดสอบกับโมเดล Llama-2-7b-chat-hf-q4f16_1

เริ่มต้นด้วยการสั่งเริ่มการทำงานของ docker


และทำการถามด้วย prompt  “Explain why free electrons in an insulator cannot jump over the energy gap to the conduction band”


ซึ่งในขณะที่ระบบทำการประมวลผลโมเดล Llama-2-7b-chat-hf-q4f16_1 จะใช้ RAM อยู่ที่ 6.7G

CPU memory usage llm model7b mixtile rk3588 sbc

ทดสอบกับโมเดล Llama-2-13b-chat-hf-q4f16_1

ซึ่งในการทดสอบโมเดลนี้เราจะใช้ docker.io/milas/mlc-llm:redpajama-3b แล้วทำการนำไฟล์ที่เกี่ยวข้องกับโมดเดล Llama-2-13b-chat-hf-q4f16_1 ไปวางไว้บน docker ก่อนที่จะทำการ reload โมเดล ใหม่ และทำการถามด้วย prompt  “Explain why free electrons in an insulator cannot jump over the energy gap to the conduction band”


ซึ่งในขณะที่ระบบทำการประมวลผลโมเดล Llama-2-13b-chat-hf-q4f16_1 จะใช้ RAM อยู่ที่ 10.6G

CPU memory usage llm model13b mixtile blade 3 rk3588

ผลการทดลอง

จากผลการทดลองด้วยการใช้ prompt เดียวกันสอบถามไปยังโมเดลแต่ละตัว โดย prompt คือ “Explain why free electrons in an insulator cannot jump over the energy gap to the conduction band”

ทุกโมเดลสามารถให้คำตอบจากคำถามนี้ได้หมด แต่ว่าแต่ละตัวใช้เวลาในการมวลผลที่ต่างกันโดยเมื่อจบคำตอบเราจะดูสถิติว่า decode ได้เร็วช้าแค่ไหนจากค่า tok/s ซึ่งเป็นอัตราการประมวลผลโทเค็น (คำหรือหน่วยย่อยของคำ) ของโมเดล ต่อวินาที ซึ่งได้ผลตามตารางดังนี้

ModelPrefill (tok/s)Decode (tok/s)
RedPajama-INCITE-Chat-3B-v1-q4f16_14.65.1
Llama-2-7b-chat-hf-q4f16_14.82.8
Llama-2-13b-chat-hf-q4f16_12.41.2

หลังจากนั้นเราจะทำการตรวจสอบความถูกต้องของคำตอบ เพื่อให้ได้ความเห็นที่เป็นกลางเราเลยทำการโยนคำตอบทั้งหมดไปยัง Google Gemini ให้ช่วยออกความเห็นว่าคำตอบไหนดีที่สุด

ความเห็นจาก Google Gemini


ซึ่ง Google Gemini ให้คะแนนคำตอบจากโมเดล Llama-2-13b-chat-hf-q4f16_1 สูงที่สุด ตามมาด้วย Llama-2-7b-chat-hf-q4f16_1 และ RedPajama-INCITE-Chat-3B-v1-q4f16_1 เป็นลำดับสุดท้าย

สรุปผล

จากการทดลองใช้งานในด้านที่เกี่ยวข้องกับ AI พบว่าบอร์ด Mixtile Blade 3 ทำได้ดี ให้ประสิทธิภาพการทำงานที่ดี ด้วย RAM ขนาดความจุสูงสุดที่ 32 GB รองรับการใช้งาน AI โมเดลขนาดใหญ่ได้เป็นอย่างดี และด้วย eMMC ขนาดความจุสูงสุดที่ 256GB และยังรอบรับ NVMe ทำให้สามารถต่อ SSD ได้รองรับการเก็บข้อมูลได้อย่างไม่ต้องกังวล

เคส Mixtile Blade 3 งานผลิตถือว่าคุณภาพดีมาก มีการออกแบบให้รองรับการใช้งานไร้สายโดยไม่มีการลดทอนสัญญาณ เพราะมีการออกแบบส่วนประกอบพลาสติกร่วมกับอลูมิเนียมได้อย่างกลมกลืน แต่การทดสอบใช้งานพบว่าเสียงพัดลมดังมากและเคสค่อนข้างร้อนแม้จะใช้งานในห้องทีมีเครื่องปรับอากาศ

ในส่วนของเอกสารประกอบการใช้งานทำได้ดีครบถ้วน จัดวางเนื้อหาเป็นสัดส่วนที่ดี ทำให้ผู้ใช้สามารถใช้งานได้โดยไม่ยุ่งมากมีวิดีโอประกอบให้ทำตามได้อย่างง่ายดาย

แต่การใช้งานจะพบว่าการเชื่อมต่อทำได้ค่อนข้างลำบาก หากต้องการใช้งาน Wi-Fi ต้องต่อผ่านคอนเน็คเตอร์ mPCIe หรือต่อจอภาพต้องใช้อุปกรณ์ต่อพ่วงเพื่อให้ใช้งานได้ เนื่องจากการที่มีพอร์ต USB C เพียงสองช่อง
แต่หากมองภาพการนำไปใช้งานเฉพาะด้าน เช่น cluster computer ถือว่ามีความคุ้มค่ามาก เพราะบอร์ดออกแบบมารองรับการใช้งานด้านนี้ไว้แล้วสามารถต่อเชื่อมเป็นคลัสเตอร์ได้อย่างง่ายดายพร้อมซอฟต์แวร์ไดรเวอร์

ต้องขอขอบคุณ  Mixtile ที่ได้ส่ง Mixtile Blade 3 มาให้เราได้รีวิว และหากสนใจที่จะซื้อบอร์ด Mixtile Blade 3 มาเพื่อใช้งานสามารถสั่งซื้อได้ที่ช่องทางต่าง ๆ ดังนี้ บนร้านออนไลน์ Mixtile shop ราคาเริ่มต้นที่ $229.00(~8,200฿) สำหรับ RAM 4GB และ Storage 32GB, สูงสุด RAM 32GB และ Storage 256GB ราคา $439(~15,700฿) และบน Aliexpress ราคาเริ่มต้นที่ $352(~12,700฿) ขึ้นอยู่กับ RAM และ Storage ที่คุณเลือก

Subscribe
Notify of
guest
0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
โฆษณา