OpenCL™ - BSP - ศูนย์สนับสนุน

Intel® FPGA SDK สําหรับ OpenCL™ ช่วยให้นักพัฒนาซอฟต์แวร์สามารถเร่งแอปพลิเคชันของตนโดยการกําหนดเป้าหมายแพลตฟอร์มที่แตกต่างกันด้วยซีพียู Intel และ FPGA Intel® FPGA SDK สําหรับ OpenCL™ สามารถติดตั้งเป็นส่วนหนึ่งของ Intel® Quartus® Prime ซอฟต์แวร์หรือเป็นแพคเกจแยกต่างหาก. คุณสามารถดาวน์โหลด Intel FPGA SDK สําหรับ OpenCL ได้จากลิงค์ด้านล่าง

ดาวน์โหลด Intel® FPGA SDK สําหรับ OpenCL™

ยินดีต้อนรับสู่หน้าการสนับสนุน OpenCL™ BSP! ที่นี่คุณจะพบข้อมูลเกี่ยวกับวิธีการวางแผนออกแบบและใช้ OpenCL™ BSP ของคุณรวมถึงเรียนรู้เคล็ดลับและเทคนิคบางอย่างเพื่อวัตถุประสงค์ในการดีบัก

หน้านี้ถูกตั้งค่าให้แนะนําคุณตั้งแต่ต้นจนจบกระบวนการพัฒนาแพ็คเกจการสนับสนุนบอร์ด OpenCL™ (BSP) (หรือออกแบบ / ย้ายเคอร์เนล / อัลกอริทึม OpenCL) ในส่วนแก้ไขการออกแบบอ้างอิงคุณจะพบทรัพยากรเกี่ยวกับวิธีการปรับเปลี่ยนแพลตฟอร์มอ้างอิง® Intel ลงในแพลตฟอร์มที่กําหนดเองของคุณเองรวมถึงวิธีการรวบรวมการออกแบบแบนโดยไม่ล้มเหลวเวลา ส่วนการวางแผนพื้นและการปิดเวลาให้คําแนะนําเกี่ยวกับวิธีการแบ่งพาร์ติชันการออกแบบของคุณและเพื่อให้ได้ความถี่ในการทํางานสูงสุด นอกจากนี้ยังอธิบายถึงเทคนิคในการปิดเวลาในการออกแบบของคุณและมีการรับประกันการปิดเวลาในขณะที่สร้าง BSP ส่วน MMD และ OpenCL Utilities มีขั้นตอนในการสร้าง MMD ใหม่และให้ข้อมูลรายละเอียดเกี่ยวกับอรรถประโยชน์ OpenCL ส่วนดีบักมีเครื่องมือและทรัพยากรบางอย่างสําหรับปัญหาการดีบักที่คุณอาจพบ มีเอกสารและหลักสูตรการฝึกอบรมที่ระบุไว้ในทุกส่วนที่เป็นประโยชน์ในระหว่างกระบวนการพัฒนา BSP

1. ปรับเปลี่ยนการออกแบบอ้างอิง

การเริ่มต้นใช้งาน

เมื่อต้องการเริ่มต้นใช้งานการพัฒนา BSP ตรวจสอบให้แน่ใจว่าคุณทําตามขั้นตอนต่อไปนี้

  1. ยืนยันว่ามีการติดตั้งซอฟต์แวร์ FPGA SDK ® Intel สําหรับ OpenCL™ และ®ควอตัส® Intel
  2. ตรวจสอบว่าเวอร์ชันเครื่องมือที่ตรงกับการอ้างอิง OpenCL™ BSP พร้อมใช้งานหรือไม่
  3. ยืนยันการเข้าถึงสิทธิ์การใช้งานซอฟต์แวร์®ควอตัส® Intel เต็มรูปแบบ

เลือกการออกแบบการอ้างอิง

เลือกการออกแบบการอ้างอิงที่เหมาะสมกับแพลตฟอร์มที่กําหนดเองของคุณ

Intel สนับสนุนการออกแบบ BSP อ้างอิง™ OpenCL สําหรับแพลตฟอร์มต่อไปนี้ คุณยังสามารถดูคู่มือการพอร์ต OpenCL™ BSP สําหรับแพลตฟอร์มเฉพาะ:

การปรับเปลี่ยนการออกแบบการอ้างอิง

เริ่มปรับเปลี่ยนการออกแบบการอ้างอิงไปยังแพลทของคุณโดยทําตามขั้นตอนในคู่มือการพอร์ต OpenCL BSP ขอแนะนําว่าหลังจากการเปลี่ยนแปลงการออกแบบเสร็จสมบูรณ์คุณควรลองคอมไพล์เคอร์เนลแรกของคุณ โดยทั่วไปเราใช้เคอร์เนลที่เรียกว่า Boardtestซึ่งทดสอบอินเทอร์เฟซที่แตกต่างกันของ BSP ข้อมูลเกี่ยวกับขั้นตอนการสร้างบอร์ดบอร์ดและ BSP ทั่วไปจะกล่าวถึงในคู่มือต่อไปนี้:

Intel® FPGA SDK สําหรับ OpenCL™ คู่มือผู้ใช้ชุดเครื่องมือแพลตฟอร์มแบบกําหนดเอง (PDF) ›

ขั้นตอนที่แนะนําในการสร้าง BSP:

  1. คอมไพล์ Boardtest ในโฟลว์ "แบน" เพื่อสร้างไฟล์ ".aocx" ที่ปิดเวลา
  2. ตรวจสอบ ".aocx" โดยการเรียกใช้ Boardtest และตรวจสอบความคาดหวังแบนด์วิดท์อินเทอร์เฟซจากการทดสอบ
  3. เริ่มทํางานบนการวางแผนพื้นสําหรับการสร้าง "ฐาน" เพื่อสร้าง OpenCL BSP แบบปิดเวลารับประกัน

2. การวางแผนพื้นและการปิดเวลา

การเริ่มต้นใช้งาน

ใน OpenCL เราจําเป็นต้องทํางานเกี่ยวกับเวลาสําหรับการแก้ไขที่แตกต่างกันสองแบบของโครงการคือการแก้ไขแบบแบนและฐาน การแก้ไขแบบแบนคือการแก้ไขที่ไม่มีพาร์ติชันหรือขอบเขตล็อคตรรกะและใช้ไฟล์ฮาร์ดแวร์ / flat.qsf เพื่อนําไปใช้ ในขณะที่การแก้ไขฐานเป็นหนึ่งที่มีพาร์ทิชันและล็อคตรรกะและใช้ไฟล์ฮาร์ดแวร์ / base.qsf เพื่อนําไปใช้ เราขอแนะนําให้คุณได้รับการปรับเวลาแบนที่สะอาดก่อนเป็นการเริ่มต้นที่ดีแล้วทํางานบนการวางแผนพื้นเพื่อรับการแก้ไขฐานที่สะอาดเวลาของการออกแบบ

สําหรับรายละเอียดเพิ่มเติมเกี่ยวกับขั้นตอนการคอมไพล์ โปรดดูส่วน OpenCL™ ขั้นตอนการคอมไพล์ BSP ใน Intel® FPGA SDK สําหรับ OpenCL™ คู่มือการเพิ่มประสิทธิภาพแผนชั้นการสนับสนุนบอร์ด OpenCL

ฉากกั้นชั้น

เริ่มต้นด้วยการรวบรวมแบบแบนเพื่อทําความเข้าใจว่าส่วนประกอบหลักของ BSP ถูกวางไว้ตามธรรมชาติ (โดยเฉพาะบล็อกทรัพย์สินทางปัญญา (IP) ที่มีการเชื่อมต่อ I / O เช่น PCIe * หรือหน่วยความจํา DDR)

สําหรับแนวทางเพิ่มเติมเกี่ยวกับเรื่องนี้โปรดดู แนวทางสําหรับส่วนการวางแผนพื้น BSP ™ OpenCL ใน Intel® FPGA SDK สําหรับ OpenCL™ คู่มือการเพิ่มประสิทธิภาพแผนชั้นการสนับสนุนบอร์ด OpenCL

สําหรับรายละเอียด คุณยังสามารถอ้างถึง คู่มือผู้ใช้การกําหนดค่าใหม่บางส่วนได้ด้วย

ปรับเปลี่ยนขอบเขตการประชาสัมพันธ์

ในระหว่างการคอมไพล์พื้นฐาน ให้เริ่มต้นด้วยขอบเขตล็อกตรรกะบนเคอร์เนลที่มีfreeze_wrapper_inst|kernel_system_inst ใช้ตัววางแผนการคอมไพล์และชิปแบบแบนเพื่อระบุขนาดและตําแหน่งของฮาร์ดแวร์ BSP พยายามสํารองทรัพยากรเพิ่มเติมสําหรับkernel_systemโดยใช้ขอบเขตล็อกตรรกะ

สําหรับแนวทางเพิ่มเติมเกี่ยวกับเรื่องนี้โปรดดู แนวทางสําหรับส่วนการวางแผนพื้น BSP ™ OpenCL ใน Intel® FPGA SDK สําหรับ OpenCL™ คู่มือการเพิ่มประสิทธิภาพแผนชั้นการสนับสนุนบอร์ด OpenCL

การแก้ไขการละเมิดเวลา

เมื่อต้องการแก้ไขการละเมิดเวลาในการออกแบบ คุณอาจต้องเพิ่มขั้นตอนไปป์ไลน์ระหว่างแกน IP

สําหรับแนวทางเพิ่มเติม โปรดดูลิงก์ต่อไปนี้:

ข้อจํากัดในการตั้งค่า/ระงับ

.failing_paths.rpt และ .failing_clocks.rpt ในไดเรกทอรีเอาต์พุตแสดงรายการความล้มเหลวที่สําคัญในการออกแบบ หากมีความล้มเหลวที่สอดคล้องกันในบางเส้นทาง คุณอาจต้องการตั้งค่าข้อจํากัดการหน่วงเวลาต่ําสุดหรือสูงสุดสําหรับเส้นทางที่สําคัญนั้นภายในแฟ้ม /hardware/top.sdc

สําหรับปัญหาที่เกี่ยวข้องคุณสามารถอ้างถึงวิธีการแก้ปัญหาต่อไปนี้ในหน้าฐานข้อมูลความรู้ -วิธีปิดเวลาในการแข่งขันระงับและการละเมิดการตั้งค่าใน Arria 10?

3. ระบบสาธารณูปโภค MMD และ OpenCL™

การพัฒนาหรือการปรับเปลี่ยนแหล่ง MMD

ไลบรารีซอฟต์แวร์ MMD ใช้อินพุต/เอาต์พุตพื้นฐาน (I/O) ระหว่างโฮสต์และบอร์ดเร่งความเร็ว และมีอินเทอร์เฟซ เช่น เปิด อ่าน และเขียน โปรแกรมควบคุมไลบรารี MMD ถูกจัดเก็บเป็นรูปแบบ Windows* 64 หรือ Linux* 64 และโค้ดต้นฉบับจะถูกเก็บไว้ในโฟลเดอร์ต้นทาง

สําหรับข้อมูลเพิ่มเติม โปรดดูที่ส่วน การสร้างไลบรารี MMD ใน Intel® FPGA SDK สําหรับ OpenCL™ คู่มือผู้ใช้ชุดเครื่องมือแพลตฟอร์มแบบกําหนดเอง

การสนับสนุนด้านสาธารณูปโภค

ยูทิลิตี้ openCL™ ช่วยให้คุณสามารถดําเนินการเข้าถึงบอร์ดโดยใช้ Intel® FPGA SDK สําหรับ OpenCL™ ซึ่งรวมถึงการติดตั้ง aocl, ถอนการติดตั้ง aocl, การวินิจฉัย aocl, โปรแกรม aocl และ aocl flash

สําหรับข้อมูลเพิ่มเติม โปรดดูที่ส่วน การให้ Intel® FPGA SDK สําหรับการสนับสนุนสาธารณูปโภค openCL™ ใน Intel® FPGA SDK สําหรับ OpenCL™ คู่มือผู้ใช้ชุดเครื่องมือแพลตฟอร์มที่กําหนดเอง

หลังจากที่คุณสร้างโปรแกรมอรรถประโยชน์ซอฟต์แวร์และชั้น MMD แล้ว การออกแบบฮาร์ดแวร์จะต้องได้รับการทดสอบ วิธีมาตรฐานคือการสร้างเคอร์เนลของคณะกรรมการและรันบนกระดาน

สําหรับข้อมูลเพิ่มเติม โปรดดูที่ส่วน การทดสอบการออกแบบฮาร์ดแวร์ ใน Intel® FPGA SDK สําหรับ OpenCL™ คู่มือผู้ใช้ชุดเครื่องมือแพลตฟอร์มแบบกําหนดเอง

4. ดีบัก

บอร์ดนําขึ้น

ส่วนนี้ช่วยให้คุณแก้ไขปัญหาในขณะที่แสดงชุดพัฒนา FPGA ® Intel หรือบอร์ดที่กําหนดเองของคุณเอง

หากต้องการค้นหาปัญหาที่ทราบบางอย่างที่คุณอาจพบในขณะที่นําบอร์ดของคุณขึ้นโปรดดูส่วนต่อไปนี้ใน AN 807: การกําหนดค่าชุดพัฒนา FPGA ® Intel® 10 GX สําหรับ Intel® FPGA SDK สําหรับ OpenCL™ หมายเหตุการใช้งาน:

แผนผังและเวลา

สําหรับเคล็ดลับและเทคนิคในการใช้พื้นที่น้อยที่สุดสําหรับตรรกะแบบคงที่และปล่อยให้มีพื้นที่มากขึ้นสําหรับเคอร์เนล 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 การตั้งค่าตัวแปรนี้มีประโยชน์สําหรับการยืนยันว่าการลงทะเบียนรหัสเวอร์ชันถูกอ่านอย่างถูกต้องและแกน IP ของ UniPHY ได้รับการสอบเทียบ

ACL_PCIE_JTAG_CABLE

ตั้งค่าตัวแปรนี้เพื่อแทนที่อาร์กิวเมนต์เริ่มต้นquartus_pgmที่ระบุหมายเลขสายเคเบิล ค่าเริ่มต้นคือสายเคเบิล 1 หากมีสายเคเบิลดาวน์โหลด FPGA ® Intel หลายสายคุณสามารถระบุสายเคเบิลเฉพาะโดยการตั้งค่าตัวแปรนี้

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*

สัญญาณแตะดีบัก

เนื่องจากการออกแบบ™ OpenCL ไม่สนับสนุนคุณสมบัติการจําลองการใช้ตัววิเคราะห์ตรรกะการแตะสัญญาณจึงเป็นวิธีที่ดีที่สุดในการดีบักการออกแบบเหล่านี้

เพื่อดีบักการออกแบบใด ๆ ที่มีการแฮงค์เคอร์เนลหรือปัญหาที่เกี่ยวข้องกับอินเทอร์เฟซหน่วยความจําหรือ aocl วินิจฉัยความล้มเหลวโดยใช้ตัววิเคราะห์ตรรกะการแตะสัญญาณ

เมื่อต้องการเรียนรู้เพิ่มเติมเกี่ยวกับตัววิเคราะห์ตรรกะการแตะสัญญาณ ให้ดูที่ การดีบักการออกแบบด้วยส่วนตัววิเคราะห์ตรรกะการแตะสัญญาณ ในคู่มือผู้ใช้เครื่องมือดีบัก

ทําตามขั้นตอนต่อไปนี้เพื่อเพิ่มไฟล์ Signal Tap ลงในการออกแบบ BSP

1. เปิดสัญญาณแตะ GUI และเพิ่มสัญญาณทั้งหมดที่จะวิเคราะห์

2. บันทึกไฟล์ STP ในไดเรกทอรีเดียวกับไฟล์โครงการซอฟต์แวร์®ควอตัส® Intel

3. เพิ่มบรรทัดคําสั่งต่อไปนี้ลงใน flat.qsf ของคุณ:

  • เปิดENABLE_SIGNALTAPชื่อset_global_assignment
  • USE_SIGNALTAP_FILE <file_name>.stp set_global_assignment
  • SIGNALTAP_FILE <file_name>.stp ชื่อset_global_assignment

4. คอมไพล์เคอร์เนลใหม่จากบรรทัดคําสั่ง AOCL

ปัญหาที่ทราบ

5. แนะนําให้อ่านและฝึกอบรม

วิดีโอ โอเพ่น™

ชื่อเรื่อง

การบรรยาย

เริ่มต้นใช้งาน OpenCL™ ตอนที่ 1

วิดีโอนี้อธิบายถึงขั้นตอนการไม่ใช้สองแอปพลิเคชัน OpenCL™ HelloWorld และ OpenCL™การแปลงฟูเรียร์ (FFT) ที่รวดเร็วบนพายุไซโคลน® V SoC โดยใช้เครื่อง Windows *

เริ่มต้นใช้งาน OpenCL™ ตอนที่ 2

วิดีโอนี้อธิบายถึงขั้นตอนการไม่ใช้สองแอปพลิเคชัน OpenCL™ HelloWorld และ OpenCL™ FFT บนพายุไซโคลน® V SoC โดยใช้เครื่อง Windows *

เริ่มต้นใช้งาน OpenCL ตอนที่ 3

วิดีโอนี้อธิบายถึงขั้นตอนการไม่ใช้สองแอปพลิเคชัน OpenCL™ HelloWorld และ OpenCL™ FFT บนพายุไซโคลน® V SoC โดยใช้เครื่อง Windows *

เริ่มต้นใช้งาน OpenCL ตอนที่ 4

วิดีโอนี้อธิบายถึงขั้นตอนการไม่ใช้สองแอปพลิเคชัน OpenCL™ HelloWorld และ OpenCL™ FFT บนพายุไซโคลน® V SoC โดยใช้เครื่อง Windows *

เริ่มต้นใช้งาน OpenCL ตอนที่ 5

วิดีโอนี้อธิบายถึงขั้นตอนการไม่ใช้สองแอปพลิเคชัน OpenCL™ HelloWorld และ OpenCL™ FFT บนพายุไซโคลน® V SoC โดยใช้เครื่อง Windows *

วิธีการบรรจุโมดูล / การออกแบบ Verilog แบบกําหนดเองเป็นไลบรารี OpenCL™

วิดีโออธิบายสาเหตุที่ลูกค้าอาจใช้คุณลักษณะนี้เพื่อให้มีบล็อกการประมวลผลแบบกําหนดเอง (RTL) ในรหัสเคอร์เนล OpenCL™ วิดีโอจะอธิบายตัวอย่างการออกแบบ เช่น สร้างแฟ้ม กําหนดค่าแฟ้ม และอธิบายขั้นตอนการคอมไพล์ วิดีโอยังแสดงการสาธิตของตัวอย่างการออกแบบ

OpenCL™ ใน Intel FPGA SoC FPGA (โฮสต์ Linux) - ส่วนที่ 1 - เครื่องมือดาวน์โหลดและตั้งค่า

วิดีโอนี้จะแสดงวิธีการดาวน์โหลดติดตั้งและกําหนดค่าเครื่องมือที่จําเป็นในการพัฒนาเคอร์เนล openCL™ และรหัสโฮสต์ที่กําหนดเป้าหมายไปยัง Intel FPGA SoC FPGA

OpenCL™ Intel FPGA SoC FPGA (โฮสต์ Linux) - ส่วนที่ 2 - การเรียกใช้เวกเตอร์เพิ่มตัวอย่างด้วยโปรแกรมจําลอง

วิดีโอนี้จะแสดงวิธีการดาวน์โหลดและรวบรวมตัวอย่าง OpenCL™แอปพลิเคชันที่กําหนดเป้าหมายไปยังโปรแกรมจําลองที่มีอยู่ใน™ Intel FPGA OpenCL

OpenCL™ ใน Intel FPGA SoC FPGA (โฮสต์ Linux) - ส่วนที่ 3 - การรวบรวมเคอร์เนลและรหัสโฮสต์สําหรับ SoC FPGA

วิดีโอนี้แสดงวิธีการรวบรวมเคอร์เนล OpenCL™ และรหัสโฮสต์ที่กําหนดเป้าหมายไปยัง FPGA และโปรเซสเซอร์ของพายุไซโคลน® V SoC FPGA

OpenCL™ เกี่ยวกับ Intel FPGA SoC FPGA (โฮสต์ Linux) - ส่วนที่ 4 - การตั้งค่าสภาพแวดล้อมรันไทม์

วิดีโอนี้จะแสดงวิธีการตั้งค่าบอร์ด ®พายุไซโคลน V SoC เพื่อเรียกใช้ตัวอย่าง OpenCL™ และดําเนินการรหัสโฮสต์และเคอร์เนลบนกระดาน

6. ขอความช่วยเหลือ

ผู้ให้บริการที่ได้รับการรับรองจาก OpenCL

Intel แนะนําผู้ให้บริการที่ได้รับการรับรองต่อไปนี้ที่สามารถช่วยในการพัฒนาแพ็คเกจการสนับสนุนบอร์ด OpenCL™ สําหรับบอร์ด FPGA ® Intel ผู้ให้บริการเหล่านี้มีประสบการณ์อย่างกว้างขวางในการพัฒนาแพ็คเกจการสนับสนุนบอร์ด OpenCL คุณภาพสูงไดรเวอร์และการย้ายข้อมูลการออกแบบสําหรับบอร์ด Intel FPGA:

เทอราซิก อิงค์

OpenCL และโลโก้ OpenCL เป็นเครื่องหมายการค้าของ Apple Inc. ที่ใช้โดยได้รับอนุญาตจาก Khronos

เนื้อหาในหน้านี้เป็นการผสมผสานระหว่างการแปลเนื้อหาต้นฉบับภาษาอังกฤษโดยมนุษย์และคอมพิวเตอร์ เนื้อหานี้จัดทำขึ้นเพื่อความสะดวกของคุณและเพื่อเป็นข้อมูลทั่วไปเท่านั้นและไม่ควรอ้างอิงว่าสมบูรณ์หรือถูกต้อง หากมีความขัดแย้งใด ๆ ระหว่างเวอร์ชันภาษาอังกฤษของหน้านี้กับคำแปล เวอร์ชันภาษาอังกฤษจะมีผลเหนือกว่าและควบคุม ดูเวอร์ชันภาษาอังกฤษของหน้านี้