824 FPGA SDK สำหรับบอร์ด OpenCL
รองรับแพ็คเกจ Floorplan
คู่มือการใช้งาน
Intel® FPGA SDK สำหรับ คู่มือการเพิ่มประสิทธิภาพแพ็คเกจสนับสนุนบอร์ด OpenCL ™
คู่มือการเพิ่มประสิทธิภาพแผนผังชั้น Intel/® FPGA SDK สำหรับ OpenCL™ Board Support Package (BSP) ให้แนวทางการวางแผนชั้นสำหรับ OpenCL) BSP นอกจากนี้ยังให้คำแนะนำเกี่ยวกับวิธีการรับเมล็ดพันธุ์พื้นฐานที่มีความถี่การทำงานสูงสุดโดยเฉลี่ยที่ดีที่สุด และประเมินประสิทธิภาพการใช้ทรัพยากร BSP
เอกสารนี้ถือว่าคุณคุ้นเคยกับแนวคิด OpenCL(2) ตามที่อธิบายไว้ในข้อกำหนด OpenCL เวอร์ชัน 1.0 โดย Khronos Group
ขั้นตอนการรวบรวม OpenCL BSP
OpenCL BSP รองรับโฟลว์การคอมไพล์ประเภทต่อไปนี้:
- การคอมไพล์แบบเรียบ [–bsp-flow flat]: ทำการคอมไพล์แบบเรียบของการออกแบบทั้งหมด (BSP พร้อมกับฮาร์ดแวร์ที่สร้างเคอร์เนล)
- การคอมไพล์ฐาน [–bsp-flow base]: ดำเนินการคอมไพล์ฐานโดยใช้ข้อจำกัด LogicLock จาก base.qsf file- เป้าหมายนาฬิกาเคอร์เนลจะผ่อนคลายเพื่อให้ฮาร์ดแวร์ BSP มีอิสระมากขึ้นในการตรงต่อเวลา ฐานข้อมูล base.qar ถูกสร้างขึ้นเพื่อรักษาฮาร์ดแวร์ BSP ซึ่งเป็นขอบเขตแบบคงที่
- นำเข้าคอมไพล์ [ ]: กู้คืนขอบเขตคงที่ของกำหนดเวลาที่ปิดจากฐานข้อมูล base.qar และคอมไพล์เฉพาะฮาร์ดแวร์ที่สร้างเคอร์เนลเท่านั้น นอกจากนี้ยังเพิ่มเป้าหมายนาฬิกาเคอร์เนลเพื่อให้ได้ความถี่การทำงานสูงสุดของเคอร์เนลที่ดีที่สุด (fmax)
พาร์ทิชันพื้น OpenCL BSP
แผนผังชั้น OpenCL BSP แบ่งออกเป็นสองภูมิภาคเป็นหลัก:
- ภูมิภาคแบบคงที่: แสดงถึงภูมิภาคที่มีฮาร์ดแวร์ที่เกี่ยวข้องกับ BSP ซึ่งยังคงคงที่ เวลาปิดสำหรับภูมิภาคนี้ระหว่างการรวบรวมฐาน โดยทั่วไป เป้าหมายคือการลดทรัพยากรชิปที่ใช้โดยภูมิภาคนี้ให้เหลือน้อยที่สุดเพื่อปิดกำหนดเวลา
- ขอบเขตเคอร์เนล: แสดงถึงขอบเขตการกำหนดค่าใหม่บางส่วน (PR) ที่สงวนไว้สำหรับโมดูล freeze_wrapper_inst|kernel_system_inst ซึ่งมีเคอร์เนล โดยทั่วไป เป้าหมายคือการสำรองทรัพยากรชิปให้อยู่ในระดับสูงสุดสำหรับภูมิภาคนี้
- Intel FPGA SDK สำหรับ OpenCL อิงตามข้อมูลจำเพาะของ Khronos ที่เผยแพร่ และผ่านกระบวนการทดสอบความสอดคล้องของ Khronos สามารถดูสถานะความสอดคล้องปัจจุบันได้ที่ www.khronos.org/conformance.
- OpenCL และโลโก้ OpenCL เป็นเครื่องหมายการค้าของ Apple Inc. และใช้โดยได้รับอนุญาตจาก Khronos Group™
อินเทล คอร์ปอเรชั่น. สงวนลิขสิทธิ์. Intel, โลโก้ Intel และเครื่องหมาย Intel อื่นๆ เป็นเครื่องหมายการค้าของ Intel Corporation หรือบริษัทในเครือ Intel รับประกันประสิทธิภาพของ FPGA และผลิตภัณฑ์เซมิคอนดักเตอร์ตามข้อกำหนดปัจจุบันตามการรับประกันมาตรฐานของ Intel แต่ขอสงวนสิทธิ์ในการเปลี่ยนแปลงผลิตภัณฑ์และบริการใดๆ ได้ตลอดเวลาโดยไม่ต้องแจ้งให้ทราบ Intel จะไม่รับผิดชอบหรือรับผิดใดๆ ที่เกิดขึ้นจากการใช้งานหรือการใช้ข้อมูล ผลิตภัณฑ์ หรือบริการใดๆ ที่อธิบายไว้ในที่นี้ ยกเว้นตามที่ตกลงอย่างชัดแจ้งเป็นลายลักษณ์อักษรโดย Intel ลูกค้าของ Intel จะได้รับคำแนะนำให้รับข้อมูลจำเพาะของอุปกรณ์เวอร์ชันล่าสุดก่อนที่จะใช้ข้อมูลที่เผยแพร่ใดๆ และก่อนที่จะสั่งซื้อผลิตภัณฑ์หรือบริการ
*ชื่อและยี่ห้ออื่น ๆ อาจถูกอ้างสิทธิ์โดยถือเป็นทรัพย์สินของผู้อื่น
แนวทางสำหรับการวางแผนพื้น OpenCL BSP
- เริ่มต้นด้วยการคอมไพล์แบบเรียบเพื่อทำความเข้าใจว่าส่วนประกอบหลักทั้งหมดของ BSP วางอยู่ที่ใดตามธรรมชาติ (โดยเฉพาะบล็อก IP ที่มีการเชื่อมต่อ I/O เช่น PCIe หรือ DDR) ในขณะที่ออกแบบ BSP คุณอาจต้องพิจารณาสร้างไปป์ไลน์tagอยู่ระหว่าง IP เพื่อปิดกำหนดเวลา ขั้นแรกคุณควรรันการแฟลตคอมไพล์ Seed Sweep เพื่อระบุเส้นทางที่ล้มเหลวที่เกิดซ้ำ จากนั้นจึงพยายามแก้ไข
เคล็ดลับ: — อัตราการปิดจังหวะที่ดีเหนือการกวาดเมล็ดคอมไพล์แบบเรียบจะมีโอกาสสูงในการปิดจังหวะการคอมไพล์ฐาน
— หากคุณสังเกตเห็นความล้มเหลวที่สอดคล้องกันใน mm_interconnect* (ส่วนประกอบที่เพิ่มโดย Qsys) ให้เปิดระบบด้วย Qsys Interconnect viewและสังเกตความซับซ้อนของการเชื่อมต่อที่ล้มเหลว คุณสามารถเพิ่มรองเท้าแตะแบบไปป์ไลน์ใน viewเพื่อปรับปรุงเวลา หากคุณยังคงไม่สามารถแก้ไขปัญหาได้ คุณอาจต้องแยกย่อยเส้นทางที่สำคัญ mm_interconnect* โดยการเพิ่มไปป์ไลน์บริดจ์ของ Avalon - ในระหว่างการคอมไพล์พื้นฐาน ให้เริ่มต้นด้วย LogicLock บนขอบเขตเคอร์เนลที่มี freeze_wrapper_inst|kernel_system_inst โดยไม่มีข้อจำกัดอื่นๆ Intel Quartus Prime สามารถวางฮาร์ดแวร์ BSP ได้อย่างอิสระในพื้นที่คงที่ที่เหลืออยู่ของชิป ใช้การคอมไพล์แบบเรียบและตัววางแผนชิปเพื่อระบุขนาดและตำแหน่งของฮาร์ดแวร์ BSP เช่น PCIe และ DDR จากนั้น สงวนขอบเขตเคอร์เนลโดยใช้ LogicLock ในขณะที่หลีกเลี่ยงพื้นที่คลัสเตอร์หลักของฮาร์ดแวร์ BSP
เคล็ดลับ: หากตระกูลชิปที่ใช้เหมือนกับแพลตฟอร์มอ้างอิง และหากส่วนประกอบ BSP คล้ายกัน อาจเร็วกว่าที่จะเริ่มต้นด้วยขอบเขต LogicLock สำหรับ freeze_wrapper_inst|kernel_system_inst ที่จัดส่งมาพร้อมกับ BSP อ้างอิง OpenCL และทำงานผ่านความล้มเหลวได้ - คุณอาจเพิ่มส่วนประกอบเพิ่มเติมต่อไปนี้ให้กับ BSP ของคุณ:
— คลังหน่วยความจำ: หากคุณเพิ่มคลังหน่วยความจำเพิ่มเติม คุณควรระบุตำแหน่งของคลัง I/O เนื่องจากคุณอาจต้องเพิ่มไพพ์ไลน์บริดจ์เพื่อให้ตรงต่อเวลา
— ช่อง I/O: คุณสามารถเพิ่มช่อง I/O เช่น วิดีโอ อีเธอร์เน็ต หรืออินเทอร์เฟซแบบอนุกรมได้ หากคุณเพิ่มช่อง I/O คุณควรระบุที่ตั้งธนาคาร I/O เนื่องจากคุณอาจต้องใช้ขอบเขต LogicLock ใหม่สำหรับการวางท่อ หากกำหนดเวลาปิดได้ยาก
เคล็ดลับ: หากคุณต้องการเพิ่มสะพานไปป์ไลน์ (เช่นampเนื่องจากความล่าช้าในการกำหนดเส้นทางอย่างมากทำให้เกิดความล้มเหลวด้านเวลา) จากนั้นให้พิจารณาระยะทางในการกำหนดเส้นทางจากตรรกะต้นทางไปยังปลายทางในชิป และปล่อยพื้นที่บางส่วนที่สงวนไว้สำหรับภูมิภาคเคอร์เนล - ปฏิบัติตามคำแนะนำทั่วไปเหล่านี้เมื่อจองขอบเขต LogicLock สำหรับเคอร์เนล:
— พยายามวางคอลัมน์ DSP ทั้งหมดใน kernel_system เว้นแต่ BSP จะกำหนดไว้
— พยายามสำรองทรัพยากรเพิ่มเติมสำหรับ kernel_system
— พยายามรักษาจำนวนรอยบากในพื้นที่เคอร์เนลให้น้อยที่สุด
รูปภาพต่อไปนี้แสดงรอยบากที่ถูกเพิ่มเพื่อวางไปป์ไลน์บริดจ์ระหว่าง PCIe และ DDR แบงค์
รูปที่ 1 แผนผัง OpenCL BSP สำหรับ Intel Arria® 10 GX ในรุ่น 17.0
แนวทางสำหรับความถี่ในการทำงานสูงสุด
ความถี่การทำงานสูงสุด (fmax) ที่ได้รับจากเคอร์เนลส่วนใหญ่ขึ้นอยู่กับความเร็ว FPGA เนื่องจาก IP ส่วนใหญ่ควรได้รับการปรับให้เหมาะสมแล้ว อย่างไรก็ตาม อาจมีการสูญเสีย fmax บ้าง ขึ้นอยู่กับแผนผังชั้น BSP สำหรับเช่นampโดยปกติแล้วจำนวนจุดตัดในพื้นที่เคอร์เนลของ BSP จะส่งผลต่อเคอร์เนล fmax
ดังที่แสดงในรูปต่อไปนี้ เพื่อให้ได้เมล็ดพันธุ์พื้นฐานที่ดีที่สุดซึ่งให้ผล fmax เฉลี่ยที่ดีที่สุด:
- ดำเนินการกวาดเมล็ดบนการรวบรวมฐานแทนการเลือกเมล็ดฐานแรกที่ตรงเวลา
- ทำการคอมไพล์การนำเข้า (โดยใช้เคอร์เนลไม่กี่ตัวจาก example design) บนเมล็ดฐานที่ผ่านทั้งหมด
- คำนวณ fmax เฉลี่ยสำหรับเมล็ดเบสทั้งหมด
- เลือกเมล็ดพันธุ์พื้นฐานที่ให้ผล fmax เฉลี่ยสูงสุด
เมล็ดพันธุ์หลักที่มีค่า fmax เฉลี่ยดีที่สุดคือตัวเลือกที่ดีสำหรับการปล่อยด้วย BSP หากคุณตัดสินใจที่จะปฏิบัติตามแนวทางที่แตกต่างจากขั้นตอนที่แนะนำ คุณอาจสังเกตเห็นการเปลี่ยนแปลง 5-10% ใน fmax ของกระบวนการคอมไพล์การนำเข้าเคอร์เนล
รูปที่ 2 การระบุเมล็ดพันธุ์ฐานที่ดีที่สุด
- เพื่อทำความเข้าใจว่าเคอร์เนลสามารถทำงานได้เร็วเพียงใดโดยไม่มีข้อจำกัดแบบแปลนพื้น:
1. ทำการคอมไพล์เคอร์เนลแบบแบนและสังเกต fmax
2. ทำการคอมไพล์การนำเข้าบนเคอร์เนลเดียวกันและสังเกต fmax
3. เปรียบเทียบผลลัพธ์ fmax
เนื่องจากข้อจำกัดของแผนผังชั้น การนำเข้า fmax การคอมไพล์จะต่ำกว่า fmax การคอมไพล์แบบเรียบเสมอ เพื่อหลีกเลี่ยงสัญญาณรบกวนของเมล็ด ให้รวบรวมเคอร์เนลด้วยเมล็ดฐานมากขึ้นและพิจารณา fmax เฉลี่ยในขณะที่เปรียบเทียบผลลัพธ์ของ fmax - อย่าเปรียบเทียบเคอร์เนล fmax จากการคอมไพล์ฐานกับแฟลตหรือการคอมไพล์การนำเข้า เป้าหมายนาฬิกาเคอร์เนลจะผ่อนคลายระหว่างการคอมไพล์ฐาน และด้วยเหตุนี้ คุณจะไม่ได้รับผลลัพธ์ที่ดีเลย
- สังเกตเส้นทางวิกฤตของนาฬิกาเคอร์เนลในการคอมไพล์ฐานหรือนำเข้า หากมีการข้ามเส้นทางวิกฤติจากเคอร์เนลไปยังพื้นที่คงที่ในแผนผังชั้น ให้เปลี่ยนแผนผังชั้นหรือเรียกใช้ Base Seed เพิ่มเติมอีกสองสามรายการเพื่อหลีกเลี่ยงเส้นทางวิกฤตนี้
แนวทางการประเมินประสิทธิภาพการใช้ทรัพยากร BSP
เปอร์เซ็นต์การใช้ทรัพยากรก็จะยิ่งสูงขึ้นtage การใช้พื้นที่ในพื้นที่คงที่ของ BSP ของคุณก็จะยิ่งดีขึ้นเท่านั้น เปอร์เซ็นต์การใช้ทรัพยากรสูงtage ยังบอกเป็นนัยว่ามีทรัพยากรเพิ่มเติมสำหรับภูมิภาคเคอร์เนล
ทำตามขั้นตอนด้านล่างเพื่อคำนวณเปอร์เซ็นต์การใช้ทรัพยากรtage ของ BSP ของคุณ:
- รับค่าสำหรับทรัพยากรทั้งหมดใน FPGA จาก top.fit.rpt หรือ base.fit.rpt ที่มีอยู่ในส่วนสถิติพาร์ติชันของรายงาน Fitter
- หักค่าสำหรับ “freeze_wrapper_inst|kernel_system_inst” (บริเวณเคอร์เนล)
เคล็ดลับ:
ให้ความสำคัญกับค่าของโมดูลตรรกะการปรับตัว (ALM) มากกว่าค่าของทรัพยากรอื่นๆ ตรวจสอบให้แน่ใจว่าเปอร์เซ็นต์การใช้ทรัพยากรtage สำหรับ ALM นั้นใกล้เคียงกับ BSP อ้างอิง OpenCL มากขึ้น เปอร์เซ็นต์ที่สูงมากtage สำหรับ ALM อาจนำไปสู่ความแออัดซึ่งอาจเพิ่มเวลาในการรวบรวมและทำให้เกิดความแออัดในการกำหนดเส้นทางในเคอร์เนลที่ซับซ้อน อย่างไรก็ตาม คุณสามารถเพิ่มหรือลดพื้นที่ขอบเขตคงที่ได้ตลอดเวลา และสังเกตเวลาในการรวบรวมและ fmax
ตารางต่อไปนี้แสดงถึงการใช้ทรัพยากร OpenCL BSP ของอุปกรณ์ Arria ® 10 GX ในรุ่น 17.0
ตารางที่ 1.
การใช้ทรัพยากร OpenCL BSP ของอุปกรณ์ IntelArria 10 GX ในรุ่น 17.0
ที่มีอยู่ทั้งหมด | สงวนไว้สำหรับเคอร์เนล | มีจำหน่ายสำหรับ BSP | ใช้โดย BSP | 0/0 | |
ALM | 427200 | 393800 | 33400 | 23818. | 71% |
การลงทะเบียน | 1708800 | 1575200 | 133600 | 38913 | 29% |
M2ตกลง | 2713 | 2534 | 179 | 134 | 75% |
ดีเอสพี | 1518 | 1518 | 0 | 0 | ไม่มีข้อมูล |
สังเกตว่าการวางแผนพื้นจะดำเนินการในลักษณะที่พื้นที่คงที่จะไม่มีบล็อก DSP ใด ๆ
ประวัติการแก้ไขเอกสาร
ตารางที่ 2.
ประวัติการแก้ไขเอกสารของ Intel FPGA SDK สำหรับแพ็คเกจการสนับสนุนบอร์ด OpenCL คู่มือการเพิ่มประสิทธิภาพแผนผังชั้น
วันที่ | เวอร์ชัน | การเปลี่ยนแปลง |
17 สิงหาคม | การเปิดตัวครั้งแรก |
เวอร์ชั่นออนไลน์
ส่งคำติชม
รหัส : 683312
เอเอ็น-824
เวอร์ชัน : 2017.08.08
824: Intel® FPGA SDK สำหรับบอร์ด OpenCL™
สนับสนุนคู่มือการเพิ่มประสิทธิภาพแผนผังชั้นของแพ็คเกจ
เอกสาร / แหล่งข้อมูล
![]() |
Intel AN 824 FPGA SDK สำหรับแพ็คเกจสนับสนุนบอร์ด OpenCL แผนผังชั้น [พีดีเอฟ] คู่มือการใช้งาน AN 824 FPGA SDK สำหรับ OpenCL Board Support Package Floorplan, AN 824, FPGA SDK สำหรับ OpenCL Board Support Package Floorplan, แพ็คเกจสนับสนุน OpenCL Board Floorplan, แพ็คเกจสนับสนุนบอร์ด Floorplan, แพ็คเกจสนับสนุนบอร์ด Floorplan, แพ็คเกจสนับสนุน Floorplan, แพ็คเกจ Floorplan, Floorplan |