OpenCL™ - BSP - ศูนย์สนับสนุน
ประกาศการเลิกผลิตผลิตภัณฑ์
Intel จะยุติการผลิต Intel® FPGA SDK สําหรับ OpenCL™ ดูข้อมูลได้ที่ การแจ้งเตือนการเลิกผลิตผลิตภัณฑ์ (PDN2219)
หน้าการสนับสนุน OpenCL™ BSP ให้ข้อมูลเกี่ยวกับวิธีการวางแผน ออกแบบ และปรับใช้ OpenCL™ BSP ของคุณ ตลอดจนเรียนรู้เคล็ดลับและเคล็ดลับบางอย่างเพื่อวัตถุประสงค์ในการดีบัก
1. ปรับเปลี่ยนการออกแบบอ้างอิง
เริ่มต้นใช้งาน
ในการเริ่มต้นการพัฒนา BSP ตรวจสอบให้แน่ใจว่าคุณทําตามขั้นตอนต่อไปนี้:
- ยืนยันว่า Intel® FPGA SDK สําหรับ OpenCL™ และซอฟต์แวร์ Intel® Quartus®ได้รับการติดตั้งแล้ว
- ตรวจสอบว่ามีเวอร์ชันเครื่องมือที่ตรงกับ BSP อ้างอิง OpenCL™ ที่พร้อมใช้งาน
- ยืนยันการเข้าถึงสิทธิ์การใช้งานซอฟต์แวร์ Intel® Quartus®ทั้งหมด
เลือกการออกแบบอ้างอิง
เลือกการออกแบบอ้างอิงที่เหมาะกับแพลตฟอร์มที่คุณกําหนดเอง
Intel รองรับการออกแบบ BSP อ้างอิง OpenCL™ สําหรับแพลตฟอร์มต่อไปนี้ คุณยังสามารถดูคู่มือการพอร์ต OpenCL™ BSP สําหรับแพลตฟอร์มเฉพาะได้ด้วย:
- Stratix® V PCIe* Development Kit - ดู คู่มือการพอร์ตแพลตฟอร์มอ้างอิงเครือข่าย Intel® FPGA SDK Intel® FPGA OpenCL™ Stratix® V
- Intel® Arria® 10 PCIe Development Kit - ดู คู่มือการเชื่อมต่อแพลตฟอร์มอ้างอิงแพลตฟอร์มแพลตฟอร์ม FPGA Intel® FPGA SDK สําหรับ OpenCL™ Intel® Arria® 10 GX FPGA Development Kit
- Intel® Arria® 10 SoC Development Kit - ดู คู่มือการพอร์ตแพลตฟอร์มอ้างอิงแพลตฟอร์ม SoC Intel® FPGA SDK สําหรับ OpenCL™ Intel® Arria® 10 SoC Development Kit
- Intel® Stratix® 10 PCIe* Development Kit - ดูคู่มือการเชื่อมต่อแพลตฟอร์มอ้างอิงแพลตฟอร์ม FPGA ชุดเครื่องมือพัฒนา Intel® FPGA SDK สําหรับ OpenCL™ Intel® Stratix® 10 GX FPGA
ปรับเปลี่ยนการออกแบบอ้างอิง
เริ่มแก้ไขการออกแบบอ้างอิงสําหรับ platfrom ของคุณโดยทําตามขั้นตอนในคู่มือการพอร์ต OpenCL BSP ขอแนะนําให้หลังจากที่การเปลี่ยนแปลงการออกแบบเสร็จสมบูรณ์แล้ว คุณควรลองคอมไพล์เคอร์เนลแรกของคุณ โดยทั่วไปเราใช้เคอร์เนลที่เรียกว่า Boardtest ซึ่งทดสอบอินเทอร์เฟซที่แตกต่างกันของ BSP ข้อมูลเกี่ยวกับขั้นตอนการสร้าง Boardtest และ BSP ทั่วไปกล่าวถึงในคู่มือต่อไปนี้:
คู่มือผู้ใช้ Intel® FPGA SDK สําหรับชุดเครื่องมือแพลตฟอร์มแบบกําหนดเอง OpenCL™ (PDF)
ขั้นตอนที่แนะนําในการสร้าง BSP:
- คอมไพล์ Boardtest ในโฟลว์ "flat" เพื่อสร้างไฟล์ปิดการกําหนดเวลา ".aocx"
- ตรวจสอบ ".aocx" โดยเรียกใช้ Boardtest และตรวจสอบความคาดหวังด้านแบนด์วิดท์ของอินเทอร์เฟซจากการทดสอบ
- เริ่มทํางานบนแผนผังสําหรับการสร้าง "ฐาน" เพื่อสร้าง OpenCL BSP แบบปิดเวลารับประกัน
2.การวางผังพื้นและการปิดเวลา
เริ่มต้นใช้งาน
ใน OpenCL เราต้องทํางานเกี่ยวกับระยะเวลาสําหรับการปรับปรุงโครงการที่แตกต่างกันสองรายการ ซึ่งเป็นการปรับปรุงแบนและพื้นฐาน การปรับปรุงแก้ไขแบบแบนคือการปรับปรุงแก้ไขแบบเรียบๆ ที่ไม่มีพาร์ติชั่นหรือพื้นที่ล็อกลอจิก และใช้ไฟล์ hardware/flat.qsf เพื่อปรับใช้ ในขณะที่การปรับปรุงแก้ไขฐานเป็นการปรับปรุงแก้ไขฐานซึ่งรวมถึงการแบ่งพาร์ติชันและการล็อกลอจิก และใช้ไฟล์ฮาร์ดแวร์/base.qsf เพื่อนําไปใช้ เราขอแนะนําให้คุณปรับปรุงแก้ไขแบนราบตามเวลาก่อนเป็นอันดับแรกจากนั้นทําการวางแผนพื้นเพื่อแก้ไขการออกแบบตามเวลาโดยสะอาด
สําหรับรายละเอียดเพิ่มเติมเกี่ยวกับโฟลว์การคอมไพล์ โปรดดูที่ส่วน โฟลว์การคอมไพล์ OpenCL™ BSP ในคู่มือการปรับแต่งประสิทธิภาพฟลอร์แพลนสนับสนุนบอร์ด OpenCL™ Intel® FPGA
พาร์ติชั่นฟลอร์แพลน
เริ่มต้นด้วยการคอมไพล์แบนเพื่อให้เข้าใจว่าส่วนประกอบหลักของ BSP วางตําแหน่งเป็นธรรมชาติ (โดยเฉพาะบล็อกทรัพย์สินทางปัญญา (IP) ที่มีการเชื่อมต่อ I/O เช่น หน่วยความจํา PCIe* หรือ DDR)
สําหรับแนวทางเพิ่มเติมเกี่ยวกับเรื่องนี้ โปรดดู แนวทางสําหรับส่วนการวางพื้น OpenCL™ BSP ในคู่มือการเพิ่มประสิทธิภาพฟลอร์แพลนการสนับสนุนบอร์ด OpenCL ใน Intel® FPGA SDK สําหรับ OpenCL™ Board Support Package
สําหรับรายละเอียด คุณยังสามารถดูที่คู่มือผู้ใช้การกําหนดค่าใหม่บางส่วน
แก้ไขภูมิภาค PR
ระหว่างการคอมไพล์พื้นฐาน ให้เริ่มต้นด้วย Logic Lock Region บนเคอร์เนลที่มี freeze_wrapper_inst|kernel_system_inst ใช้ผู้วางแผนคอมไพล์และชิปแบนเพื่อระบุขนาดและตําแหน่งของฮาร์ดแวร์ BSP พยายามจองทรัพยากรเพิ่มเติมสําหรับ kernel_system โดยใช้ภูมิภาค Logic Lock
สําหรับแนวทางเพิ่มเติมเกี่ยวกับเรื่องนี้ โปรดดู แนวทางสําหรับส่วนการวางพื้น OpenCL™ BSP ในคู่มือการเพิ่มประสิทธิภาพฟลอร์แพลนการสนับสนุนบอร์ด OpenCL ใน Intel® FPGA SDK สําหรับ OpenCL™ Board Support Package
การแก้ไขการละเมิดเวลา
ในการแก้ไขการละเมิดเวลาในการออกแบบ คุณอาจต้องเพิ่มขั้นตอนไปป์ไลน์ระหว่างคอร์ IP
สําหรับคําแนะนําเพิ่มเติม โปรดดูลิงก์ต่อไปนี้:
ข้อจํากัดการตั้งค่า/ระงับ
.failing_paths.rpt และ .failing_clocks.rpt ในไดเรกทอรีเอาต์พุตจะแสดงรายการความล้มเหลวที่สําคัญในการออกแบบ หากมีความล้มเหลวที่สอดคล้องกันในบางเส้นทาง คุณอาจต้องตั้งค่าข้อจํากัดการหน่วงเวลาต่ําสุดหรือสูงสุดสําหรับเส้นทางที่สําคัญภายในแฟ้ม /hardware/top.sdc
สําหรับปัญหาที่เกี่ยวข้อง คุณสามารถดูวิธีการแก้ไขปัญหาชั่วคราวต่อไปนี้ในหน้า ฐานข้อมูลความรู้ —วิธีปิดเวลาในการละเมิดการหยุดพักและการตั้งค่าของคู่แข่งใน Arria 10
3. MMD และ OpenCL™ Utilities
การพัฒนาหรือแก้ไขแหล่งที่มา MMD
ไลบรารีซอฟต์แวร์ MMD ใช้อินพุต/เอาต์พุตพื้นฐาน (I/O) ระหว่างโฮสต์และบอร์ดเร่งความเร็วและให้อินเทอร์เฟซ เช่น เปิด อ่าน และเขียน ไดรเวอร์ MMD library จะถูกจัดเก็บเป็นรูปแบบ Windows* 64 หรือ Linux* 64 และซอร์สโค้ดจะถูกจัดเก็บไว้ในโฟลเดอร์ต้นทาง
สําหรับข้อมูลเพิ่มเติม โปรดดูที่ส่วน การสร้างไลบรารี MMD ใน คู่มือผู้ใช้ Intel® FPGA SDK สําหรับชุดเครื่องมือแพลตฟอร์มแบบกําหนดเอง OpenCL™
การสนับสนุนยูทิลิตี้
ยูทิลิตี้ OpenCL™ ช่วยให้คุณดําเนินการเข้าถึงบอร์ดโดยใช้ Intel® FPGA SDK สําหรับ OpenCL™ ซึ่งรวมถึงการติดตั้ง aocl, การถอนการติดตั้ง aocl, การวิเคราะห์ aocl, โปรแกรม aocl และแฟลช aocl
สําหรับข้อมูลเพิ่มเติม โปรดดูที่ส่วน การสนับสนุน SDK Intel® FPGA สําหรับ OpenCL™ Utilities ใน Intel® FPGA SDK สําหรับคู่มือผู้ใช้ชุดเครื่องมือแพลตฟอร์มแบบกําหนดเอง OpenCL™
หลังจากที่คุณสร้างยูทิลิตี้ซอฟต์แวร์และเลเยอร์ MMD แล้ว การออกแบบฮาร์ดแวร์จะต้องได้รับการทดสอบ วิธีมาตรฐานคือการสร้างเคอร์เนล boardtest และรันบนบอร์ด
สําหรับข้อมูลเพิ่มเติม โปรดดูที่ ส่วน การทดสอบการออกแบบฮาร์ดแวร์ ใน คู่มือผู้ใช้ Intel® FPGA SDK สําหรับชุดเครื่องมือแพลตฟอร์มแบบกําหนดเอง OpenCL™
4. ดีบัก
การนําบอร์ดมาใช้
ในส่วนนี้จะช่วยคุณแก้ไขปัญหาในขณะที่ใช้ Intel® FPGA ชุดพัฒนาหรือบอร์ดแบบกําหนดเองของคุณ
หากต้องการค้นหาปัญหาที่ทราบบางประการที่คุณอาจพบขณะนําบอร์ดมาใช้ โปรดดูหัวข้อต่อไปนี้ใน 807: การกําหนดค่า Intel® Arria® 10 GX FPGA Development Kit สําหรับ SDK Intel® FPGA สําหรับ OpenCL™ Application Note:
แผนผังและการตั้งเวลา
สําหรับเคล็ดลับและเคล็ดลับในการใช้พื้นที่น้อยที่สุดสําหรับลอจิกคงที่และเหลือพื้นที่มากขึ้นสําหรับเคอร์เนล OpenCL™ ของคุณ คุณสามารถดูได้ที่ AN 824: Intel® FPGA SDK สําหรับคู่มือการเพิ่มประสิทธิภาพฟลอร์แพลนแพ็คเกจการสนับสนุนบอร์ด OpenCL™
ดีบักรันไทม์
มีตัวแปรสภาพแวดล้อมที่ตั้งค่าให้ได้รับข้อมูลการดีบักเพิ่มเติมขณะเรียกใช้แอปพลิเคชันแม่ข่าย นี่เป็น Intel® FPGA SDK สําหรับตัวแปรสภาพแวดล้อมเฉพาะของ OpenCL™ ซึ่งสามารถช่วยวินิจฉัยปัญหาเกี่ยวกับการออกแบบแพลตฟอร์มแบบกําหนดเอง
ตารางต่อไปนี้แสดงรายการตัวแปรสภาพแวดล้อมเหล่านี้ทั้งหมด และอธิบายรายละเอียด
ตัวแปรสภาพแวดล้อม |
คำ อธิบาย |
ACL_HAL_DEBUG |
ตั้งค่าตัวแปรนี้เป็นค่า 1 เป็น 5 เพื่อเพิ่มเอาต์พุตดีบักจาก Hardware Abstraction Layer (HAL) ซึ่งเชื่อมต่อโดยตรงกับเลเยอร์ MMD |
ACL_PCIE_DEBUG |
ตั้งค่าตัวแปรนี้เป็นค่า 1 เป็น 10000 เพื่อเพิ่มเอาต์พุตดีบักจาก MMD การตั้งค่าตัวแปรนี้มีประโยชน์สําหรับการยืนยันว่าการลงทะเบียน ID เวอร์ชันถูกอ่านอย่างถูกต้องและคอร์ IP UniPHY ได้รับการปรับเทียบ |
ACL_PCIE_JTAG_CABLE |
ตั้งค่าตัวแปรนี้เพื่อแทนที่อาร์กิวเมนต์ quartus_pgm เริ่มต้นซึ่งระบุหมายเลขสายเคเบิล ค่าเริ่มต้นคือสายเคเบิล 1 หากมี Intel® FPGA Download Cable หลายตัว คุณสามารถระบุสายเคเบิลเฉพาะได้โดยการตั้งค่าตัวแปรนี้ |
ACL_PCIE_JTAG_DEVICE_INDEX |
ตั้งค่าตัวแปรนี้เพื่อแทนที่อาร์กิวเมนต์ quartus_pgm เริ่มต้นที่ระบุดัชนี FPGA อุปกรณ์ โดยค่าเริ่มต้น ตัวแปรนี้จะมีค่า 1 หาก FPGA ไม่ใช่อุปกรณ์แรกในห่วงโซ่ JTAG คุณสามารถกําหนดคุณค่าได้ |
ACL_PCIE_USE_JTAG_PROGRAMMING |
ตั้งค่าตัวแปรนี้เพื่อบังคับให้ MMD ตั้งโปรแกรม FPGA ใหม่โดยใช้สายเคเบิล JTAG แทนการกําหนดค่าใหม่บางส่วน |
ACL_PCIE_DMA_USE_MSI |
ตั้งค่าตัวแปรนี้หากคุณต้องการใช้ MSI สําหรับการถ่ายโอนการเข้าถึงหน่วยความจําโดยตรง (DMA) บน Windows* |
การดีบัก Signal Tap
เนื่องจากการออกแบบ OpenCL™ ไม่สนับสนุนคุณสมบัติการจําลอง การใช้ Signal Tap Logic Analyzer จึงเป็นวิธีที่ดีที่สุดในการดีบักการออกแบบเหล่านี้
แนะนําให้ใช้ Signal Tap Logic Analyzer เพื่อดีบักการออกแบบใดๆ ที่มีการค้างของเคอร์เนลหรือปัญหาที่เกี่ยวข้องกับอินเทอร์เฟซหน่วยความจําหรือการวิเคราะห์ความล้มเหลวของ aocl โดยใช้ Signal Tap Logic Analyzer
หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับ Signal Tap Logic Analyzer ให้ดูส่วน การดีบักการออกแบบด้วย Signal Tap Logic Analyzer ใน คู่มือผู้ใช้เครื่องมือดีบัก
ทําตามขั้นตอนต่อไปนี้เพื่อเพิ่มไฟล์ Signal Tap ในการออกแบบ BSP
1.เปิด Signal Tap GUI และเพิ่มสัญญาณทั้งหมดที่จะวิเคราะห์
2. บันทึกไฟล์ STP ในไดเรกทอรีเดียวกันกับไฟล์โปรเจ็กต์ซอฟต์แวร์ Intel® Quartus®
3. เพิ่มบรรทัดคําสั่งต่อไปนี้ลงใน Flat.qsf ของคุณ:
- set_global_assignment -ชื่อ ENABLE_SIGNALTAP ON
- set_global_assignment -ชื่อ USE_SIGNALTAP_FILE <file_name>.stp
- set_global_assignment -ชื่อ SIGNALTAP_FILE <file_name>.stp
4. คอมไพล์เคอร์เนลใหม่จากบรรทัดคําสั่ง AOCL
โซลูชันฐานข้อมูลความรู้
อุปกรณ์ Intel® Arria® 10
อุปกรณ์ Intel® Stratix® 10
ปัญหาที่ทราบ
ข้อมูลเพิ่มเติม
การดีบักการออกแบบโดยใช้ส่วน In-System Sources และ Probes ในคู่มือผู้ใช้เครื่องมือดีบัก
5.แนะนําการอ่านและการฝึกอบรม
หลักสูตรการฝึกอบรม OpenCL™
- ข้อมูลเบื้องต้นเกี่ยวกับการประมวลผลแบบขนานด้วย OpenCL™ บน Intel® FPGAs
- เรียกใช้ OpenCL™ ใน FPGAs Intel®
- การสร้างแพลตฟอร์มแบบกําหนดเองสําหรับ Intel® FPGA SDK สําหรับ OpenCL™: เนื้อหาเกี่ยวกับ Board Support Package (BSP)
- การพัฒนาแพ็คเกจการสนับสนุนบอร์ด OpenCL™ แบบกําหนดเอง (BSP)
- หลักสูตรการฝึกอบรม OpenCL™ Board Support Package (BSP)
- หลักสูตรการฝึกอบรม OpenCL™ อื่นๆ
วิดีโอ OpenCL™
ชื่อ เรื่อง |
คำ อธิบาย |
---|---|
วิดีโอนี้อธิบายถึงขั้นตอนการเริ่มต้นใช้งานแอปพลิเคชันสองตัว OpenCL™ HelloWorld และ OpenCL™ Fast Fourier Transform (FFT) บน SoC Cyclone® โดยใช้เครื่อง Windows* |
|
วิดีโอนี้อธิบายถึงขั้นตอนการเริ่มต้นใช้งานแอปพลิเคชันสองตัว OpenCL™ HelloWorld และ OpenCL™ FFT บน SoC Cyclone® โดยใช้เครื่อง Windows* |
|
วิดีโอนี้อธิบายถึงขั้นตอนการเริ่มต้นใช้งานแอปพลิเคชันสองตัว OpenCL™ HelloWorld และ OpenCL™ FFT บน SoC Cyclone® โดยใช้เครื่อง Windows* |
|
วิดีโอนี้อธิบายถึงขั้นตอนการเริ่มต้นใช้งานแอปพลิเคชันสองตัว OpenCL™ HelloWorld และ OpenCL™ FFT บน SoC Cyclone® โดยใช้เครื่อง Windows* |
|
วิดีโอนี้อธิบายถึงขั้นตอนการเริ่มต้นใช้งานแอปพลิเคชันสองตัว OpenCL™ HelloWorld และ OpenCL™ FFT บน SoC Cyclone® โดยใช้เครื่อง Windows* |
|
วิธีการบรรจุโมดูล Verilog แบบกําหนดเอง/การออกแบบเป็นไลบรารี OpenCL™ |
วิดีโอนี้จะอธิบายเหตุผลที่ลูกค้าอาจใช้คุณสมบัตินี้เพื่อบล็อกการประมวลผลแบบกําหนดเอง (RTL) ในโค้ดเคอร์เนล OpenCL™ วิดีโออธิบายถึงตัวอย่างการออกแบบ เช่น ไฟล์ผู้ผลิต ไฟล์กําหนดค่า และอธิบายถึงโฟลว์การคอมไพล์ วิดีโอยังแสดงการสาธิตตัวอย่างการออกแบบด้วย |
OpenCL™ บน Intel FPGA SoC FPGA (โฮสต์ Linux) – ส่วนที่ 1 – ดาวน์โหลดและตั้งค่าเครื่องมือ |
วิดีโอนี้แสดงให้คุณเห็นวิธีการดาวน์โหลด ติดตั้ง และกําหนดค่าเครื่องมือที่จําเป็นในการพัฒนาเคอร์เนล OpenCL™ และรหัสโฮสต์ที่กําหนดเป้าหมาย Intel FPGA FPGAs SoC |
OpenCL™ บน Intel FPGA SoC FPGA (โฮสต์ Linux) – ส่วนที่ 2 - รันตัวอย่าง Vector Add ด้วยตัวจําลอง |
วิดีโอนี้แสดงให้คุณเห็นวิธีการดาวน์โหลดและรวบรวมตัวอย่างแอปพลิเคชัน OpenCL™ ที่มุ่งเป้าไปที่ตัวจําลองที่สร้างขึ้นใน Intel FPGA OpenCL™ |
วิดีโอนี้แสดงให้คุณเห็นวิธีคอมไพล์เคอร์เนล OpenCL™ และโค้ดโฮสต์โดยกําหนดเป้าหมายไปที่ FPGA และโปรเซสเซอร์ของ FPGA SoC Cyclone® |
|
OpenCL™ บน Intel FPGA SoC FPGA (โฮสต์ Linux) – ส่วนที่ 4 - การตั้งค่าสภาพแวดล้อมรันไทม์ |
วิดีโอนี้แสดงวิธีการตั้งค่า Cyclone® V SoC Board เพื่อรันตัวอย่าง OpenCL™ และดําเนินการโค้ดโฮสต์และเคอร์เนลบนบอร์ด |
6. ขอความช่วยเหลือ
ผู้ให้บริการที่ได้รับการรับรองจาก OpenCL
Intel แนะนําผู้ให้บริการที่ได้รับการรับรองต่อไปนี้ที่สามารถช่วยในการพัฒนาแพ็คเกจการสนับสนุนบอร์ด OpenCL™ สําหรับ Intel® FPGA บอร์ด ผู้ให้บริการเหล่านี้มีประสบการณ์อย่างกว้างขวางในการพัฒนาแพ็คเกจสนับสนุน ไดรเวอร์ และการออกแบบสําหรับ Intel FPGA บอร์ดคุณภาพสูง:
Terasic Inc
OpenCL และโลโก้ OpenCL เป็นเครื่องหมายการค้าของ Apple Inc. ซึ่งใช้งานโดยได้รับอนุญาตจาก Khronos
เนื้อหาในหน้านี้เป็นการผสมผสานระหว่างการแปลเนื้อหาต้นฉบับภาษาอังกฤษโดยมนุษย์และคอมพิวเตอร์ เนื้อหานี้จัดทำขึ้นเพื่อความสะดวกของคุณและเพื่อเป็นข้อมูลทั่วไปเท่านั้นและไม่ควรอ้างอิงว่าสมบูรณ์หรือถูกต้อง หากมีความขัดแย้งใด ๆ ระหว่างเวอร์ชันภาษาอังกฤษของหน้านี้กับคำแปล เวอร์ชันภาษาอังกฤษจะมีผลเหนือกว่าและควบคุม ดูเวอร์ชันภาษาอังกฤษของหน้านี้