Intel® FPGA SDK สําหรับ OpenCL™ - ศูนย์สนับสนุน
ประกาศการเลิกผลิตผลิตภัณฑ์
Intel จะยุติการผลิต Intel® FPGA SDK สําหรับ OpenCL™ ดูข้อมูลได้ที่ การแจ้งเตือนการเลิกผลิตผลิตภัณฑ์ (PDN2219)
หน้าการสนับสนุน Intel® FPGA SDK for OpenCL ให้ข้อมูลเกี่ยวกับวิธีการจําลอง คอมไพล์ และโปรไฟล์เคอร์เนลของคุณ นอกจากนี้ยังมีแนวทางเกี่ยวกับวิธีการเพิ่มประสิทธิภาพเคอร์เนลของคุณ รวมถึงข้อมูลวิธีดีบักระบบของคุณขณะเรียกใช้แอปพลิเคชันโฮสต์ หน้านี้ได้รับการจัดระเบียบเป็นสองหมวดหมู่หลักโดยอิงตามแพลตฟอร์มการพัฒนา ซึ่งเป็นนักพัฒนาเคอร์เนลสําหรับ FPGA และนักพัฒนาโค้ดโฮสต์สําหรับ CPU
ข้อกําหนดซอฟต์แวร์
คุณต้องมีสิทธิของผู้ดูแลระบบในระบบการพัฒนาเพื่อติดตั้งแพ็คเกจและไดรเวอร์ที่จําเป็นสําหรับการพัฒนาซอฟต์แวร์โฮสต์
ระบบโฮสต์จะต้องใช้งานหนึ่งในระบบปฏิบัติการ Windows* และ Linux* ที่รองรับต่อไปนี้ที่ระบุไว้ในหน้า การสนับสนุนระบบปฏิบัติการ
พัฒนาแอปพลิเคชันแม่ข่ายของคุณสําหรับ Intel® FPGA SDK สําหรับ OpenCL™ โดยใช้หนึ่งในสภาพแวดล้อมการพัฒนาต่อไปนี้:
ระบบระบบปฏิบัติการ Windows
- Intel FPGA SDK สําหรับ OpenCL
- แพ็คเกจสนับสนุนบอร์ด (BSP)
- Microsoft* Visual Studio Professional เวอร์ชัน 2010 หรือใหม่กว่า
ระบบระบบปฏิบัติการ Linux
- Intel FPGA SDK สําหรับ OpenCL
- Bsp
- RPM (ตัวจัดการแพ็คเกจ RPM; ตัวจัดการแพ็คเกจ Red Hat เดิม)
- คอมไพเลอร์ C รวมอยู่กับ GCC
- คําสั่ง Perl เวอร์ชัน 5 หรือใหม่กว่า
1.นักพัฒนาเคอร์เนล
อินเทอร์เฟซผู้ใช้ SDK
Intel® FPGA SDK สําหรับ OpenCL™ ให้ประสบการณ์การพัฒนาผู้ใช้สองโหมด สําหรับเครื่องมือสร้างโค้ด เครื่องมือทั้งหมดจะถูกรวมเข้ากับ GUI ซึ่งช่วยให้สามารถออกแบบ คอมไพล์ และดีบักเคอร์เนลได้ ในทางกลับกันตัวเลือกบรรทัดคําสั่งสําหรับผู้ใช้ทั่วไป
- GUI/ตัวสร้างโค้ด: ไม่พร้อมให้บริการในขณะนี้
- ตัวเลือกบรรทัดคําสั่ง:
ต่อไปนี้เป็นคําสั่งที่มีประโยชน์สําหรับนักพัฒนาเคอร์เนล:
aoc kernel.cl -o bin/kernel.aocx –board=<board_name>
- คอมไพล์ไฟล์ต้นฉบับ kernel.cl ลงในไฟล์การตั้งโปรแกรม FPGA (kernel.aocx) สําหรับบอร์ดที่ระบุโดย <board_name>; -o ใช้เพื่อระบุชื่อและตําแหน่งของแฟ้มเอาต์พุต
aoc kernel.cl -o bin/kernel.aocx –board=<board_name> -march=emulator
- สร้างไฟล์ aocx สําหรับการจําลอง ซึ่งสามารถใช้เพื่อทดสอบการทํางานของ kernel
aoc -รายการ-บอร์ด
- พิมพ์รายการของบอร์ดที่มีอยู่และออก
aoc -ความช่วยเหลือ
- พิมพ์รายการตัวเลือกคําสั่ง aoc ทั้งหมด และข้อมูลวิธีใช้สําหรับตัวเลือกเหล่านี้แต่ละตัวเลือก
เวอร์ชัน Aocl
- แสดงข้อมูลเวอร์ชันสําหรับ Intel FPGA SDK ที่ติดตั้งสําหรับ OpenCL
ติดตั้ง aocl
- ติดตั้งไดรเวอร์สําหรับบอร์ดของคุณลงในระบบโฮสต์ปัจจุบัน
วินิจฉัย aocl
- รันโปรแกรมทดสอบผู้จําหน่ายบอร์ดสําหรับบอร์ด
โปรแกรม Aocl
- ปรับตั้งค่าภาพ FPGA ใหม่บนบอร์ด
แฟลช Aocl
- เริ่มต้น FPGA ด้วยการกําหนดค่าการเริ่มต้นระบบที่ระบุ
ความช่วยเหลือของ aocl
- พิมพ์รายการตัวเลือกคําสั่ง aocl ทั้งหมด และข้อมูลวิธีใช้สําหรับตัวเลือกเหล่านี้แต่ละตัวเลือก
ข้อมูลจําเพาะของ OpenCL
ความเข้ากันได้ของ Khronos
Intel® FPGA SDK สําหรับ OpenCL™ อิงตามข้อมูลจําเพาะ Khronos ที่เผยแพร่และได้รับการสนับสนุนโดยผู้ขายจํานวนมากที่เป็นส่วนหนึ่งของกลุ่ม Khronos Intel FPGA SDK สําหรับ OpenCL ผ่านกระบวนการทดสอบความสอดคล้องกับ Khronos ซึ่งเป็นไปตามมาตรฐาน OpenCL 1.0 และส่งมอบทั้งส่วนหัวของ OpenCL 1.0 และ OpenCL 2.0 จาก Khronos Group
สนใจ: ปัจจุบัน SDK ไม่สนับสนุนส่วนต่อประสานโปรแกรมประยุกต์ (API) OpenCL 2.0 ทั้งหมด หากคุณใช้ส่วนหัวของ OpenCL 2.0 และทําการเรียกไปยัง API ที่ไม่รองรับ การเรียกจะส่งคืนรหัสข้อผิดพลาดเพื่อระบุว่า API ไม่ได้รับการสนับสนุนอย่างสมบูรณ์
Intel FPGA SDK สําหรับรันไทม์ของโฮสต์ OpenCL นั้นสอดคล้องกับเลเยอร์แพลตฟอร์ม OpenCL และ API ที่มีคําชี้แจงและข้อยกเว้นบางอย่าง ซึ่งดูได้ที่ส่วน สถานะการสนับสนุนของคุณสมบัติ OpenCL ของ Intel FPGA SDK สําหรับคู่มือการเขียนโปรแกรม OpenCL
ลิงค์ที่เกี่ยวข้องอื่นๆ:
- สําหรับข้อมูลเพิ่มเติมเกี่ยวกับ OpenCL โปรดไปที่ หน้าภาพรวม OpenCL ของกลุ่ม Kronos
- สามารถดูสถานะความสอดคล้องปัจจุบันได้ที่ หน้าโปรแกรมลูกบุญธรรมกลุ่ม Kronos
- สําหรับข้อมูลเพิ่มเติมเกี่ยวกับมาตรฐาน OpenCL 1.0 โปรดดู ข้อมูลจําเพาะ OpenCL โดย Khronos
ส่วนขยาย OpenCL
ช่องสัญญาณ (I/O หรือ Kernel)
Intel® FPGA SDK สําหรับส่วนขยายช่องสัญญาณ OpenCL™ มอบกลไกสําหรับการส่งข้อมูลไปยังเคอร์เนล และซิงโครไนซ์เคอร์เนลกับประสิทธิภาพสูงและความหน่วงที่ต่ํา ใช้ลิงก์ต่อไปนี้เพื่อดูข้อมูลเพิ่มเติมเกี่ยวกับวิธีการปรับใช้ ใช้ และจําลองช่องสัญญาณ:
- การใช้ Intel FPGA SDK สําหรับส่วนขยายช่องสัญญาณ OpenCL
- การใช้แชนเนลกับสําเนาเคอร์เนล
- รายงาน HTML: แนวคิดการออกแบบเคอร์เนล - ช่องสัญญาณ
- การถ่ายโอนข้อมูลผ่าน Intel FPGA SDK สําหรับช่องสัญญาณ OpenCL หรือท่อ OpenCL
- ข้อกําหนดสําหรับการใช้คิวคําสั่งหลายคิวในช่องหรือไปป์
หมายเหตุ: หากคุณต้องการใช้ประโยชน์จากความสามารถของช่องสัญญาณ แต่มีความสามารถในการเรียกใช้โปรแกรมเคอร์เนลของคุณโดยใช้ SDK อื่นๆ ให้ปรับใช้ท่อ OpenCL สําหรับข้อมูลเพิ่มเติมเกี่ยวกับไปป์ โปรดดูส่วนต่อไปนี้เกี่ยวกับท่อ
ท่อ
Intel FPGA SDK สําหรับ OpenCL ให้การรองรับเบื้องต้นสําหรับฟังก์ชันไปป์ OpenCL ซึ่งเป็นส่วนหนึ่งของ OpenCL Specification เวอร์ชัน 2.0 ซึ่งเป็นกลไกสําหรับการส่งข้อมูลไปยังเคอร์เนล และซิงโครไนซ์เคอร์เนลกับเคอร์เนลที่มีประสิทธิภาพสูงและความหน่วงต่ํา
Intel FPGA SDK สําหรับการปรับใช้ OpenCL ของไปป์ไม่สอดคล้องกับข้อกําหนด OpenCL เวอร์ชั่น 2.0 อย่างสมบูรณ์ เป้าหมายของการปรับใช้ไปป์ของ SDK คือการให้โซลูชันที่ทํางานได้อย่างราบรื่นบนอุปกรณ์ที่สอดคล้องกับ OpenCL 2.0 ที่แตกต่างกัน เพื่อให้สามารถใช้งานระบบท่อ Intel FPGA ผลิตภัณฑ์ได้ การออกแบบของคุณต้องเป็นไปตามข้อกําหนดบางประการ
ดูลิงก์ต่อไปนี้สําหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีการใช้ไปป์ OpenCL:
- การปรับใช้ท่อ OpenCL
- การถ่ายโอนข้อมูลผ่าน Intel FPGA SDK สําหรับช่องสัญญาณ OpenCL หรือท่อ OpenCL
- ข้อกําหนดสําหรับการใช้คิวคําสั่งหลายคิวในช่องหรือไปป์
จำลอง
ในขั้นตอนการออกแบบหลายขั้นตอน คุณสามารถประเมินฟังก์ชันการทํางานของเคอร์เนล OpenCL™ ของคุณโดยดําเนินการบนอุปกรณ์จําลองหนึ่งเครื่องหรือหลายเครื่องบนโฮสต์ x86-64 Windows* หรือ Linux* การคอมไพล์การออกแบบสําหรับการจําลองใช้เวลาหลายวินาทีในการสร้างไฟล์ .aocx และช่วยให้คุณสามารถทําซ้ําการออกแบบของคุณได้อย่างมีประสิทธิภาพมากขึ้นโดยไม่ต้องผ่านเวลานานหลายชั่วโมงที่จําเป็นสําหรับการคอมไพล์แบบเต็ม
สําหรับระบบ Linux โปรแกรมจําลองให้การสนับสนุนการดีบักเชิงสัญลักษณ์ การดีบักเชิงสัญลักษณ์ช่วยให้คุณค้นหาต้นกําเนิดของข้อผิดพลาดในการทํางานในโค้ดเคอร์เนลของคุณ
ลิงก์ด้านล่างมีภาพรวมของขั้นตอนการออกแบบสําหรับเคอร์เนล OpenCL และแสดงขั้นตอนต่างๆ ที่คุณสามารถจําลองเคอร์เนลของคุณได้
SDK Intel® FPGA Multistep สําหรับขั้นตอนการออกแบบ OpenCL
การจําลองและการดีบักส่วน OpenCL Kernel ของคุณ จากคู่มือการตั้งโปรแกรมมีรายละเอียดเพิ่มเติมเกี่ยวกับความแตกต่างระหว่างการทํางานของเคอร์เนลบนฮาร์ดแวร์และการจําลอง
ลิงค์ที่เกี่ยวข้องอื่นๆ:
- การจําลองและดีบักเคอร์เนล OpenCL ของคุณ
- การจําลองช่องสัญญาณ I/O
- การตรวจสอบฟังก์ชันรันไทม์ของโฮสต์ผ่านการจําลอง (Windows)
- การตรวจสอบฟังก์ชันรันไทม์ของโฮสต์ผ่านการจําลอง (Linux)
ปรับ แต่ง
ด้วยเทคโนโลยี Intel® FPGA SDK สําหรับ OpenCL™ Offline Compiler คุณไม่จําเป็นต้องเปลี่ยนเคอร์เนลของคุณเพื่อให้พอดีกับสถาปัตยกรรมฮาร์ดแวร์แบบคงที่ได้อย่างเหมาะสม แต่คอมไพเลอร์แบบออฟไลน์จะปรับแต่งสถาปัตยกรรมฮาร์ดแวร์โดยอัตโนมัติเพื่อรองรับความต้องการเคอร์เนลของคุณ
โดยทั่วไปคุณควรปรับเคอร์เนลให้เหมาะสมซึ่งกําหนดเป้าหมายหน่วยประมวลผลเดียวก่อน หลังจากที่คุณปรับประสิทธิภาพหน่วยประมวลผลนี้ให้เหมาะสมแล้ว ให้เพิ่มประสิทธิภาพด้วยการปรับขนาดฮาร์ดแวร์เพื่อเติมข้อมูลส่วนที่เหลือของ FPGA ขนาดเนื้อที่ฮาร์ดแวร์ของเคอร์เนลมีความสัมพันธ์กับเวลาที่ใช้ในการคอมไพล์ฮาร์ดแวร์ ดังนั้น การปรับแต่งประสิทธิภาพที่มากขึ้นที่คุณสามารถทําได้โดยใช้พื้นที่ที่เล็กลง (นั่นคือหน่วยประมวลผลเดียว) การคอมไพล์ฮาร์ดแวร์ยิ่งกว่าที่คุณสามารถทําได้ในระยะเวลาหนึ่งๆ
การปรับแต่งประสิทธิภาพ OpenCL สําหรับ Intel FPGAs
เพื่อปรับการออกแบบของคุณให้เหมาะสมและรับประสิทธิภาพสูงสุด ทําความเข้าใจกับประสิทธิภาพสูงสุดทางทฤษฎีและทําความเข้าใจข้อจํากัดของคุณ ทําตามขั้นตอนเหล่านี้
- เริ่มต้นด้วยการใช้งานฟังก์ชั่นที่ดีที่รู้จักกันง่าย
- ใช้อีมูเลเตอร์เพื่อตรวจสอบฟังก์ชันการทํางาน
- ลบหรือลดแผงลอยของไปป์ไลน์ที่มีการรายงานพร้อมกับรายงานการปรับประสิทธิภาพ
- วางแผนการเข้าถึงหน่วยความจําเพื่อแบนด์วิดท์หน่วยความจําที่เหมาะสมที่สุด
- ใช้ตัวสร้างโปรไฟล์เพื่อแก้ไขปัญหาประสิทธิภาพ
Profiler ให้ข้อมูลเชิงลึกเพิ่มเติมเกี่ยวกับประสิทธิภาพของระบบ ซึ่งให้ทิศทางแก่คุณในการเพิ่มประสิทธิภาพอัลกอริธึมในการใช้งานหน่วยความจํา
โปรดจําไว้ว่าสําหรับ FPGAs คุณสามารถจัดสรรทรัพยากรได้มากขึ้นการ Unrolling, Parallelization และประสิทธิภาพที่สูงขึ้นสามารถบรรลุได้
รายงานและแหล่งข้อมูลที่เป็นประโยชน์สําหรับการปรับแต่งประสิทธิภาพ
มีรายงานที่ระบบสร้างขึ้นจํานวนหนึ่งที่พร้อมใช้งานสําหรับผู้ใช้ รายงานเหล่านี้ให้ข้อมูลเชิงลึกเกี่ยวกับโค้ด การใช้ทรัพยากร และคําแนะนําในจุดที่จะให้ความสําคัญกับการปรับปรุงประสิทธิภาพต่อไป:
- รายงานการวิเคราะห์ Loop ของตัวอย่างการออกแบบ OpenCL
- กําลังตรวจสอบข้อมูลเกี่ยวกับการจําลองแบบหน่วยความจําและแผงปิด
- กําลังตรวจทานข้อมูลพื้นที่
- รายงาน HTML: ข้อความรายงานพื้นที่
การปรับแต่งประสิทธิภาพหน่วยความจํา
การทําความเข้าใจระบบหน่วยความจํามีความสําคัญอย่างยิ่งในการใช้แอปพลิเคชันอย่างมีประสิทธิภาพโดยใช้ OpenCL
การเชื่อมต่อระหว่างหน่วยความจําทั่วโลก
FPGA แตกต่างจาก GPU ตรงที่สามารถสร้างหน่วยโหลดโหลดแบบกําหนดเอง (LSU) ที่เหมาะสมที่สุดสําหรับแอพพลิเคชั่นของคุณ ดังนั้นความสามารถในการเขียนโค้ด OpenCL ที่คุณเลือกประเภท LSU ที่เหมาะสมสําหรับแอพพลิเคชั่นของคุณอาจช่วยปรับปรุงประสิทธิภาพการออกแบบของคุณอย่างมาก
สําหรับข้อมูลเพิ่มเติม โปรดดูที่ส่วน Global Memory Interconnect ของ Intel FPGA SDK สําหรับคู่มือแนวทางปฏิบัติที่ดีที่สุดของ OpenCL
หน่วยความจําในเครื่อง
หน่วยความจําภายในเครื่องเป็นระบบที่ซับซ้อน ซึ่งแตกต่างจากสถาปัตยกรรม GPU ทั่วไปซึ่งมีแคชในระดับต่างๆ FPGA ใช้หน่วยความจําภายในบล็อกหน่วยความจําเฉพาะภายใน FPGA สําหรับข้อมูลเพิ่มเติม โปรดดูที่ส่วน หน่วยความจําภายในเครื่อง ของคู่มือแนวทางปฏิบัติที่ดีที่สุดของ Intel FPGA SDK สําหรับ OpenCL
หน่วยความจําที่ใช้สามารถได้รับการปรับให้เหมาะสมเพื่อปรับปรุงประสิทธิภาพโดยรวมได้หลายวิธี สําหรับข้อมูลเพิ่มเติมเกี่ยวกับเทคนิคหลักบางประการ โปรดดูที่ส่วน จัดสรรหน่วยความจําที่จัดชิด ของ Intel FPGA SDK สําหรับคู่มือแนวทางปฏิบัติที่ดีที่สุดของ OpenCL
สําหรับข้อมูลเพิ่มเติมเกี่ยวกับกลยุทธ์ในการปรับปรุงประสิทธิภาพการเข้าถึงหน่วยความจํา โปรดดูที่ส่วน กลยุทธ์สําหรับการปรับปรุงประสิทธิภาพการเข้าถึงหน่วยความจํา ของ Intel FPGA SDK สําหรับคู่มือแนวปฏิบัติที่ดีที่สุดของ OpenCL
ไปป์ ไลน์
การทําความเข้าใจไปป์ไลน์มีความสําคัญอย่างยิ่งต่อการใช้ประโยชน์จากประสิทธิภาพที่ดีที่สุดจากการนําไปใช้ของคุณ การใช้ไปป์ไลน์อย่างมีประสิทธิภาพช่วยปรับปรุงอัตราความเร็วประสิทธิภาพโดยตรง สําหรับรายละเอียดเพิ่มเติม โปรดดูที่ส่วน ไปป์ไลน์ ของ Intel FPGA SDK สําหรับคู่มือแนวปฏิบัติที่ดีที่สุดของ OpenCL
สําหรับข้อมูลเพิ่มเติมเกี่ยวกับการถ่ายโอนข้อมูล โปรดดูที่ส่วน การถ่ายโอนข้อมูลผ่าน Intel FPGA SDK สําหรับช่อง OpenCL หรือส่วน OpenCL Pipes ของ Intel FPGA SDK สําหรับคู่มือแนวปฏิบัติที่ดีที่สุดของ OpenCL
คอลล์ การครอบงาม แบนด์วิดท์
ทําโปรไฟล์เคอร์เนลของคุณเพื่อระบุปัญหาคอขวดด้านประสิทธิภาพ สําหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีการที่ข้อมูลโปรไฟล์ช่วยให้คุณระบุหน่วยความจําหรือพฤติกรรมของช่องสัญญาณไม่ดีที่นําไปสู่ประสิทธิภาพเคอร์เนลที่ไม่เป็นที่พอใจ โปรดดูที่ การทําโปรไฟล์เคอร์เนลของคุณเพื่อระบุส่วนปัญหาคอขวดด้านประสิทธิภาพ ของ Intel FPGA SDK สําหรับคู่มือแนวปฏิบัติที่ดีที่สุดของ OpenCL
การปรับแต่งประสิทธิภาพลูป
เทคนิคบางอย่างสําหรับการเพิ่มประสิทธิภาพลูปคือ:
สําหรับเคล็ดลับบางประการในการเอาการอ้างอิงที่ดําเนินการแบบลูปในสถานการณ์ต่างๆ สําหรับเคอร์เนลรายการงานเดียว โปรดดูที่ส่วน การเอาออกการขึ้นต่อกันของ Loop-Carried ของ Intel FPGA SDK สําหรับคู่มือแนวทางปฏิบัติที่ดีที่สุดของ OpenCL
สําหรับข้อมูลเพิ่มเติมเกี่ยวกับการปรับประสิทธิภาพการดําเนินการจุดลอย โปรดดูที่ส่วน การปรับประสิทธิภาพการดําเนินการจุดลอยตัว ของ Intel FPGA SDK สําหรับคู่มือแนวทางปฏิบัติที่ดีที่สุดของ OpenCL
การปรับพื้นที่ให้เหมาะสม
การใช้งานพื้นที่เป็นข้อควรพิจารณาในการออกแบบที่สําคัญหากเคอร์เนล OpenCL ของคุณสามารถดําเนินการกับ FPGAs ขนาดต่างๆ ได้ เมื่อคุณออกแบบแอปพลิเคชัน OpenCL ของคุณ Intel แนะนําให้คุณทําตามกลยุทธ์การออกแบบเพื่อเพิ่มประสิทธิภาพการใช้พื้นที่ฮาร์ดแวร์
โดยทั่วไปการเพิ่มประสิทธิภาพเคอร์เนลต้องการทรัพยากร FPGA เพิ่มเติม ในทางตรงกันข้าม การปรับพื้นที่ให้เหมาะสมมักจะส่งผลให้ประสิทธิภาพการทํางานลดลง ระหว่างการปรับแต่งประสิทธิภาพเคอร์เนล Intel ขอแนะนําให้คุณรันเคอร์เนลหลายเวอร์ชันบนบอร์ด FPGA เพื่อกําหนดกลยุทธ์การเขียนโปรแกรมเคอร์เนลที่สร้างขนาดที่ดีที่สุดเทียบกับการแลกใช้ประสิทธิภาพ
สําหรับข้อมูลเพิ่มเติมเกี่ยวกับกลยุทธ์สําหรับการเพิ่มประสิทธิภาพการใช้พื้นที่ FPGA โปรดดู ที่ส่วน กลยุทธ์สําหรับการเพิ่มประสิทธิภาพการใช้พื้นที่ FPGA ของ Intel FPGA SDK สําหรับคู่มือแนวปฏิบัติที่ดีที่สุดของ OpenCL
ตัวอย่างการออกแบบอ้างอิง
ตัวอย่างการออกแบบบางอย่างที่แสดงเทคนิคการเพิ่มประสิทธิภาพมีดังนี้:
ตัวอย่างการออกแบบการคูณเมทริกซ์
ตัวอย่างนี้แสดงการปรับประสิทธิภาพการดําเนินการคูณเมทริกซ์พื้นฐาน โดยใช้การแบ่งส่วนลูปเพื่อใช้ประโยชน์จากการใช้ข้อมูลซ้ําในการประมวลผล
ตัวอย่างนี้แสดง:
- การปรับแต่งประสิทธิภาพจุดลอยแบบแม่นยําเดียว
- การบัฟเฟอร์หน่วยความจําในเครื่อง
- คอมไพล์การปรับประสิทธิภาพ (การคลายการวนซ้ํา num_simd_work_items คุณลักษณะ)
- การเพิ่มประสิทธิภาพจุดลอยตัว
- การดําเนินการหลายอุปกรณ์
ตัวอย่างการออกแบบตัวกรอง FIR แบบ Time-Domain
ตัวอย่างการออกแบบนี้ปรับใช้การวัดประสิทธิภาพตัวกรอง finite impulse response (FIR) ของโดเมนเวลาจาก HPEC Challenge Benchmark Suite
การออกแบบนี้เป็นตัวอย่างที่ดีของวิธีที่ FPGAs สามารถให้ประสิทธิภาพที่ดียิ่งกว่าสถาปัตยกรรม GPU สําหรับตัวกรอง FIR จุดลอยตัว
ตัวอย่างนี้แสดง:
- การปรับแต่งประสิทธิภาพจุดลอยแบบแม่นยําเดียว
- การปรับใช้บัฟเฟอร์หน้าต่างแบบเลื่อน 1D ที่มีประสิทธิภาพ
- วิธีการเพิ่มประสิทธิภาพเคอร์เนลรายการงานแบบเดี่ยว
ตัวอย่างการออกแบบการดาวน์สเกลวิดีโอ
ตัวอย่างการออกแบบนี้ปรับใช้การลดระดับวิดีโอที่จะถ่ายวิดีโออินพุต 1080p และเอาต์พุตวิดีโอ 720p ที่ 110 เฟรมต่อวินาที ตัวอย่างนี้ใช้หลายเคอร์เนลในการอ่านและเขียนไปยังหน่วยความจําส่วนกลางได้อย่างมีประสิทธิภาพ
ตัวอย่างนี้แสดง
- ช่องเคอร์เนล
- เคอร์เนลพร้อมกันหลายตัว
- ช่องเคอร์เนลถึงเคอร์เนล
- ลวดลายการออกแบบหน้าต่างบานเลื่อน
- การปรับแต่งรูปแบบการเข้าถึงหน่วยความจํา
ตัวอย่างการออกแบบการไหลของออปติคัล
ตัวอย่างการออกแบบนี้คือการใช้งาน OpenCL ของอัลกอริธึมโฟลว์ออปติคัล Lucas Kanade เวอร์ชันที่หนาแน่น ไม่ซ้ําและไม่ใช่พีระมิดที่มีขนาดหน้าต่าง 52x52 แสดงให้ทํางานที่มากกว่า 80 เฟรมต่อวินาทีบนชุดเครื่องมือพัฒนา SoC Cyclone® V
ตัวอย่างนี้แสดง:
- เคอร์เนลรายการงานเดี่ยว
- ลวดลายการออกแบบหน้าต่างบานเลื่อน
- เทคนิคการลดการใช้ทรัพยากร
- เอาต์พุตภาพ
ฝึก อบรม
สามารถเข้ารับการฝึกอบรมออนไลน์เฉพาะเจาะจงการปรับแต่งประสิทธิภาพ OpenCL ด้วยตัวอย่างการออกแบบได้ที่:
- เทคนิคการปรับแต่งประสิทธิภาพ OpenCL: ตัวอย่างอัลกอริธึมการประมวลผลภาพ
- เทคนิคการปรับแต่งประสิทธิภาพ OpenCL: ตัวอย่างอัลกอริธึมแฮชที่ปลอดภัย
อ้าง อิง
การทําโปรไฟล์
ใน ขั้นตอนการออกแบบหลายขั้นตอน หากว่าประสิทธิภาพเคอร์เนลโดยประมาณจากการจําลองเป็นที่ยอมรับ คุณสามารถเลือกเพื่อรวบรวมข้อมูลว่าการออกแบบของคุณทํางานอย่างไรในขณะที่ดําเนินการกับ FPGA
คุณสามารถสั่งให้ Intel® FPGA SDK สําหรับ OpenCL™ Offline Compiler เป็นตัวนับประสิทธิภาพในโค้ด Verilog ในไฟล์ .aocx ด้วยตัวเลือก -profile ระหว่างการดําเนินการ Intel FPGA SDK สําหรับ OpenCL Profiler จะวัดและรายงานข้อมูลประสิทธิภาพที่ถูกเก็บรวบรวมระหว่างการดําเนินการเคอร์เนล OpenCL บน FPGA คุณสามารถตรวจสอบข้อมูลประสิทธิภาพใน Profiler GUI
การทําโปรไฟล์ส่วน OpenCL Kernel ของคุณใน Intel FPGA SDK สําหรับคู่มือการเขียนโปรแกรม OpenCL มีข้อมูลเพิ่มเติมเกี่ยวกับวิธีการโปรไฟล์เคอร์เนลของคุณ
วิธีวิเคราะห์ข้อมูลโปรไฟล์
ข้อมูลการทําโปรไฟล์ช่วยให้คุณระบุหน่วยความจําหรือพฤติกรรมของแชนเนลที่ไม่ดี ซึ่งนําไปสู่ประสิทธิภาพเคอร์เนลที่ไม่พอใจ โปรไฟล์เคอร์เนลของคุณเพื่อระบุปัญหาคอขวดด้านประสิทธิภาพของ คู่มือแนวทางปฏิบัติที่ดีที่สุดของ Intel FPGA SDK สําหรับ OpenCL มีข้อมูลเชิงลึกมากขึ้นเกี่ยวกับ Dynamic Profiler GUI และวิธีการตีความข้อมูลโปรไฟล์ เช่น แผงลอย แบนด์วิดท์ แคชที่เข้าชม และอื่นๆ นอกจากนี้ยังมีการวิเคราะห์ Profiler ของสถานการณ์ตัวอย่างการออกแบบ OpenCL มากมาย
2. นักพัฒนา Host Code
ไลบรารีโฮสต์รันไทม์
Intel® FPGA SDK สําหรับ OpenCL™ จะมีคอมไพเลอร์และเครื่องมือให้คุณสร้างและเรียกใช้แอปพลิเคชัน OpenCL ที่มุ่งเป้าไปที่ผลิตภัณฑ์ Intel FPGA
หากคุณต้องการ Intel FPGA SDK สําหรับฟังก์ชันการปรับใช้เคอร์เนลของ OpenCL เท่านั้น ให้ดาวน์โหลดและติดตั้ง Intel FPGA Runtime Environment (RTE) สําหรับ OpenCL
RTE เป็นเซ็ตย่อยของ Intel FPGA SDK สําหรับ OpenCL RTE มีเครื่องมือและส่วนประกอบรันไทม์ที่ช่วยให้คุณสามารถสร้างและดําเนินการโปรแกรมโฮสต์ และดําเนินการโปรแกรม OpenCL kernel ที่ประมวลผลล่วงหน้าบนบอร์ดตัวเร่งความเร็วเป้าหมาย ซึ่งแตกต่างจาก SDK ที่ให้สภาพแวดล้อมที่ช่วยให้สามารถสร้างและดําเนินการโปรแกรมโฮสต์ และดําเนินการโปรแกรม OpenCL kernel ที่ประมวลผลล่วงหน้าบนบอร์ดตัวเร่งความเร็วเป้าหมาย
อย่าติดตั้ง SDK และ RTE บนระบบโฮสต์เดียวกัน SDK มี RTE อยู่แล้ว
ยูทิลิตี้และโฮสต์ไลบรารี Runtime
RTE สําหรับ OpenCL ให้ยูทิลิตี้ ไลบรารีรันไทม์ของโฮสต์ ไดรเวอร์ และไลบรารีและไฟล์เฉพาะ RTE
- RTE Utility รวมคําสั่งที่คุณสามารถเรียกใช้เพื่อทํางานระดับสูง ยูทิลิตี RTE เป็นเซ็ตย่อยของ Intel FPGA SDK สําหรับยูทิลิตี้ OpenCL
- รันไทม์โฮสต์จัดเตรียม OpenCL Host Platform API และ runtime API สําหรับแอปพลิเคชันโฮสต์ OpenCL ของคุณ
รันไทม์ของโฮสต์ประกอบด้วยไลบรารีต่อไปนี้:
- ไลบรารีที่เชื่อมโยงแบบคงที่จะมี API โฮสต์ OpenCL, นามธรรมฮาร์ดแวร์ และไลบรารีตัวช่วย
- ไลบรารีการเชื่อมต่อแบบไดนามิก (DLLs) มาพร้อมนามธรรมฮาร์ดแวร์และไลบรารีตัวช่วยเหลือ
สําหรับข้อมูลเพิ่มเติมเกี่ยวกับยูทิลิตี้และไลบรารีรันไทม์โฮสต์ โปรดดูที่ส่วน เนื้อหาของ Intel FPGA RTE สําหรับ OpenCL ของ Intel FPGA RTE สําหรับคู่มือการเริ่มต้นใช้งาน OpenCL
การสตรีมข้อมูล (ช่องทางโฮสต์)
ตอนนี้คุณสามารถลดความหน่วงของระบบของระบบของคุณได้อย่างมากโดยใช้ช่องสัญญาณโฮสต์ที่อนุญาตให้สตรีมข้อมูลจากโฮสต์เพื่อสตรีมไปยังเคอร์เนล FPGA โดยตรงผ่านอินเทอร์เฟซ PCIe* ในขณะที่ข้ามตัวควบคุมหน่วยความจํา เคอร์เนล FPGA สามารถเริ่มประมวลผลข้อมูลได้ทันทีและไม่ต้องรอให้การถ่ายโอนข้อมูลเสร็จสมบูรณ์ ช่องสัญญาณโฮสต์ได้รับการสนับสนุนในอินเทอร์เฟซการเขียนโปรแกรมแอปพลิเคชัน (API) OpenCL runtime และรวมถึงการสนับสนุนการจําลอง
สําหรับรายละเอียดเพิ่มเติมเกี่ยวกับช่องสัญญาณโฮสต์และการสนับสนุนการจําลอง โปรดดูที่ส่วน Emulating I/O Channel ของ Intel® FPGA SDK สําหรับคู่มือการตั้งโปรแกรม OpenCL™
การฟรุก
การทําโปรไฟล์จะช่วยให้คุณสามารถเรียนรู้ว่าโปรแกรมของคุณใช้เวลาไปที่ไหน และฟังก์ชันต่างๆ ที่ถูกเรียกคืออะไร ข้อมูลนี้แสดงให้คุณเห็นว่าส่วนใดของโปรแกรมของคุณทํางานช้ากว่าที่คุณคาดไว้ ซึ่งอาจต้องมีการเขียนโปรแกรมใหม่เพื่อการเรียกใช้โปรแกรมที่เร็วกว่า นอกจากนี้ยังสามารถบอกคุณได้ว่าฟังก์ชั่นใดที่ถูกเรียกมากกว่าหรือน้อยกว่าที่คุณคาดหวัง
gprof
gprof เป็นเครื่องมือโอเพนซอร์สที่มีอยู่ในระบบปฏิบัติการ Linux* สําหรับการทําโปรไฟล์ซอร์สโค้ด โดยทํางานในการสุ่มตัวอย่างตามเวลา ในระหว่างช่วงเวลาที่ตัวนับโปรแกรมถูกสอบสวนเพื่อตัดสินใจว่าจุดใดในรหัสการดําเนินการมาถึง
เมื่อต้องการใช้ gprof ให้คอมไพล์ซอร์สโค้ดใหม่โดยใช้แฟลกการทําโปรไฟล์คอมไพเลอร์ -pg
เรียกใช้ไฟล์เรียกทํางานเพื่อสร้างไฟล์ที่มีข้อมูลโปรไฟล์:
ไฟล์เฉพาะชื่อ "gmon.out" ซึ่งประกอบด้วยข้อมูลทั้งหมดที่เครื่องมือ gprof ต้องใช้ในการผลิตข้อมูลโปรไฟล์ที่มนุษย์อ่านได้ถูกสร้างขึ้น ดังนั้นตอนนี้ใช้เครื่องมือ gprof ด้วยวิธีต่อไปนี้:
$ gprof ซอร์สโค้ด gmon.out > profile_data.txt
profile_data.txt คือไฟล์ที่มีข้อมูลที่เครื่องมือ gprof ใช้เพื่อสร้างข้อมูลโปรไฟล์ที่มนุษย์อ่านได้ ซึ่งมีสองส่วน: โปรไฟล์แบบเรียบและกราฟโทร
โปรไฟล์ แบบแบน จะแสดงระยะเวลาที่โปรแกรมของคุณใช้ในแต่ละฟังก์ชัน และจํานวนครั้งที่ฟังก์ชันถูกเรียก
กราฟโทรจะแสดงสําหรับฟังก์ชันแต่ละฟังก์ชัน ซึ่งฟังก์ชันเรียกว่าฟังก์ชันอื่นๆ และจํานวนครั้งที่เรียกใช้งาน นอกจากนี้ยังมีการประเมินว่าเวลาใช้เวลาเท่าใดใน subroutines ของแต่ละฟังก์ชัน
ข้อมูลเพิ่มเติมเกี่ยวกับการใช้ gprof สําหรับการทําโปรไฟล์มีอยู่ในเว็บไซต์ GNU
Intel® VTune™ Amplifier
Intel® VTune™ Amplifier ที่ใช้สําหรับการทําโปรไฟล์ จะช่วยคุณเพิ่มความเร็วและเพิ่มประสิทธิภาพการทํางานโค้ดของคุณบนแพลตฟอร์มแบบฝัง Linux, Android* หรือระบบ Windows* ให้การวิเคราะห์ประเภทต่อไปนี้:
- การวิเคราะห์ประสิทธิภาพ: ค้นหาปัญหาคอขวดของรหัสแบบอนุกรมและแบบขนาน ตัวเลือกอัลกอริธึมวิเคราะห์และการใช้งานเอนจิน GPU และทําความเข้าใจว่าแอปพลิเคชันของคุณมีประโยชน์อย่างไรจากทรัพยากรฮาร์ดแวร์ที่มีอยู่
- การวิเคราะห์ Intel Energy Profiler: วิเคราะห์เหตุการณ์ด้านพลังงานและระบุเหตุการณ์เหล่านั้นที่เสียไปพลังงาน
สําหรับข้อมูลเพิ่มเติมเกี่ยวกับ Intel V-tune Amplifier โปรดไปที่เว็บไซต์ การเริ่มต้นใช้งานกับ Intel VTune Amplifier 2018 สําหรับระบบปฏิบัติการ Linux
มัลติเธรด
มัลติเธรดแบบไปป์ไลน์โฮสต์ OpenCL™ มีเฟรมเวิร์กให้อัตราความเร็วสูงสําหรับอัลกอริธึมที่ต้องประมวลผลข้อมูลอินพุตจํานวนมาก และกระบวนการสําหรับแต่ละข้อมูลต้องดําเนินการตามลําดับ หนึ่งในแอพพลิเคชั่นที่ดีที่สุดของเฟรมเวิร์กนี้อยู่ในแพลตฟอร์มที่แตกต่างกันซึ่งมีการใช้ฮาร์ดแวร์หรือแพลตฟอร์มที่มีปริมาณงานสูงเพื่อเร่งความเร็วส่วนที่ใช้เวลานานที่สุดของแอปพลิเคชัน ส่วนที่เหลือของอัลกอริธึมจะต้องรันตามลําดับบนแพลตฟอร์มอื่น เช่น CPU เพื่อเตรียมข้อมูลอินพุตสําหรับงานที่เร่งความเร็ว หรือใช้เอาต์พุตของงานนั้นเพื่อเตรียมเอาต์พุตสุดท้าย ในสถานการณ์นี้ แม้ว่าประสิทธิภาพของอัลกอริธึมจะมีการเร่งความเร็วบางส่วน แต่ปริมาณงานของระบบทั้งหมดจะต่ํากว่ามากเนื่องจากลักษณะตามลําดับของอัลกอริธึมดั้งเดิม
ใน AN 831 นี้: Intel FPGA SDK สําหรับ OpenCL Host Pipelined Multithread Application Note จะมีการเสนอเฟรมเวิร์กไปป์ไลน์ใหม่สําหรับการออกแบบที่มีปริมาณงานสูง เฟรมเวิร์กนี้เหมาะที่สุดสําหรับการประมวลผลข้อมูลอินพุตขนาดใหญ่ผ่านอัลกอริธึมซึ่งการขึ้นต่อกันของข้อมูลจะบังคับการดําเนินการตามลําดับของทุกขั้นตอนหรืองานของอัลกอริธึม
FPGA ไม่สนใจจากโฮสต์
FPGAs จะถูกใช้ในพื้นที่เร่งความเร็ว OpenCL มีวิธีการใช้งานโดย CPU อย่างเฉพาะเจาะจงเพื่อออฟโหลดงานเพื่อ FPGA ไฟล์ที่แนบด้านล่างมีขั้นตอนการเริ่มต้นทั่วไปที่จําเป็นสําหรับรหัสโฮสต์เพื่อเปิดเคอร์เนล FPGA ดาวน์โหลดไฟล์ที่มีขั้นตอนการเริ่มต้นที่นี่
ฟังก์ชัน init() สามารถเรียกจากฟังก์ชันหลักเพื่อเริ่มต้น FPGA รหัสพบอุปกรณ์ที่เคอร์เนลจะทํางาน จากนั้นโปรแกรมต่างๆ ด้วย aocx ที่อยู่ในไดเรกทอรีเดียวกันกับโฮสต์ execuatable หลังจากขั้นตอนการเริ่มต้นในโค้ด ผู้ใช้ต้องตั้งค่าอาร์กิวเมนต์ kernel ตามความต้องการในการออกแบบ
นอกจากนี้ยังมีฟังก์ชัน Cleanup() ซึ่งช่วยทําให้ทรัพยากรว่างหลังจากดําเนินการเคอร์เนล
3. ดีบัก
จำลอง
สามารถใช้ Intel® FPGA SDK สําหรับ OpenCL™ Emulator เพื่อตรวจสอบการทํางานของเคอร์เนลได้ ผู้ใช้ยังสามารถดีบักฟังก์ชันเคอร์เนล OpenCL โดยเป็นส่วนหนึ่งของแอปพลิเคชันโฮสต์บนระบบ Linux* คุณสมบัติการดีบักที่มีใน SDK Intel FPGA สําหรับ OpenCL Emulator ช่วยให้คุณทําเช่นนั้นได้
สําหรับข้อมูลเพิ่มเติม โปรดดูส่วนเหล่านี้ใน Intel FPGA SDK สําหรับคู่มือการเขียนโปรแกรม OpenCL:
การทําโปรไฟล์
สําหรับข้อมูลเพิ่มเติมเกี่ยวกับการทําโปรไฟล์ โปรดดูส่วนเหล่านี้ใน คู่มือการเขียนโปรแกรม SDK Intel® FPGA สําหรับ OpenCL™:
ตัวแปรดีบักรันไทม์ |
|
---|---|
มีตัวแปรสภาพแวดล้อมที่ตั้งค่าให้ได้รับข้อมูลการดีบักเพิ่มเติมขณะเรียกใช้แอปพลิเคชันแม่ข่าย นี่เป็น Intel® FPGA SDK สําหรับตัวแปรสภาพแวดล้อมเฉพาะของ OpenCL™ ซึ่งสามารถช่วยวินิจฉัยปัญหาเกี่ยวกับการออกแบบแพลตฟอร์มแบบกําหนดเอง ตารางต่อไปนี้แสดงรายการตัวแปรสภาพแวดล้อมเหล่านี้ทั้งหมด และอธิบายรายละเอียด | |
ชื่อตัวแปรสภาพแวดล้อม | คำ อธิบาย |
ACL_HAL_DEBUG |
ตั้งค่าตัวแปรนี้เป็นค่า 1 เป็น 5 เพื่อเพิ่มเอาต์พุตดีบักจากเลเยอร์ Hardware Abstraction (HAL) ซึ่งเชื่อมต่อโดยตรงกับเลเยอร์ MMD |
ACL_PCIE_DEBUG |
ตั้งค่าตัวแปรนี้เป็นค่า 1 เป็น 10,000 เพื่อเพิ่มเอาต์พุตดีบักจาก MMD การตั้งค่าตัวแปรนี้มีประโยชน์สําหรับการยืนยันว่าการลงทะเบียน ID เวอร์ชันถูกอ่านอย่างถูกต้องและคอร์ IP UniPHY ได้รับการปรับเทียบ |
ACL_PCIE_JTAG_CABLE |
ตั้งค่าตัวแปรนี้เพื่อแทนที่อาร์กิวเมนต์ quartus_pgm เริ่มต้นซึ่งระบุหมายเลขสายเคเบิล ค่าเริ่มต้นคือสายเคเบิล 1 หากมี Intel® FPGA Download Cables หลายตัว คุณสามารถระบุสายเคเบิลเฉพาะได้โดยการตั้งค่าตัวแปรนี้ |
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* |
เครื่องมือวินิจฉัยสําหรับ Intel® FPGA SDK สําหรับ OpenCL™
เครื่องมือวินิจฉัยสําหรับ Intel FPGA SDK for OpenCL ช่วยวินิจฉัยและแก้ไขปัญหาการติดตั้ง/การตั้งค่าต่างๆ ปัญหาฮาร์ดแวร์และซอฟต์แวร์ที่เกิดขึ้นขณะทํางานกับ Intel FPGA SDK สําหรับ OpenCL เครื่องมือดําเนินการทดสอบการติดตั้ง การทดสอบอุปกรณ์ และการทดสอบการเชื่อมต่อ สําหรับข้อมูลเพิ่มเติมเกี่ยวกับเครื่องมือ ให้ดูการนําเสนอนี้ หากต้องการใช้เครื่องมือดาวน์โหลดจาก ที่นี่
เทคนิคการดีบักอื่นๆ
เนื่องจากการวนรอบในโปรแกรมโฮสต์ ผู้ใช้อาจพบระบบ OpenCL™ ที่ช้าลงขณะเรียกใช้งาน หากต้องการทราบรายละเอียดเพิ่มเติมเกี่ยวกับสถานการณ์ดังกล่าว โปรดดู การดีบักระบบ OpenCL ของคุณซึ่งค่อยๆ ชะลอ ส่วน Intel® FPGA SDK สําหรับคู่มือการเขียนโปรแกรม OpenCL
Intel Code Builder สําหรับ OpenCL เป็นเครื่องมือพัฒนาซอฟต์แวร์ที่พร้อมใช้งานเป็นส่วนหนึ่งของ Intel FPGA SDK สําหรับ OpenCL ซึ่งมีชุดปลั๊กอิน Microsoft* Visual Studio และ Eclipse ที่ช่วยให้สามารถสร้าง สร้าง ดีบัก และวิเคราะห์แอปพลิเคชัน Windows* และ Linux* ที่เร่งความเร็วด้วย OpenCL สําหรับข้อมูลเพิ่มเติม โปรดดูที่ ส่วน การพัฒนา/การดีบักแอปพลิเคชัน OpenCL โดยใช้ Intel Code Builder สําหรับ OpenCL ของ Intel FPGA SDK สําหรับคู่มือการเขียนโปรแกรม OpenCL
โซลูชันฐานข้อมูลความรู้
อุปกรณ์ Intel® Arria® 10
อุปกรณ์ Intel® Stratix® 10
ข้อมูลเพิ่มเติม
ต่อไปนี้คือลิงก์เพิ่มเติมบางส่วนจาก Intel FPGA Community สําหรับปัญหาเฉพาะที่เกี่ยวข้องกับขั้นตอนการออกแบบและรัน:
4.การฝึกอบรมที่มีอยู่
หลักสูตรการฝึกอบรม
ดูหลักสูตรการฝึกอบรม OpenCL™ ต่อไปนี้:
- ข้อมูลเบื้องต้นเกี่ยวกับการประมวลผลแบบขนานด้วย OpenCL™ บน Intel® FPGAs
- การเขียน OpenCL บน FPGAs Intel
- เรียกใช้ OpenCL บน FPGAs Intel
- หลักสูตรการฝึกอบรม OpenCL อื่นๆ
- การสร้างโมดูล RTL สําหรับ Intel® FPGA SDK สําหรับ OpenCL™
- การสร้างแพลตฟอร์มแบบกําหนดเองสําหรับ Intel® FPGA SDK สําหรับ OpenCL™: ข้อมูลพื้นฐาน BSP
- การสร้างแพลตฟอร์มแบบกําหนดเองสําหรับ Intel® FPGA SDK สําหรับ OpenCL™: การปรับเปลี่ยนแพลตฟอร์มอ้างอิง
วิดีโอด่วน OpenCL™ |
|
---|---|
ชื่อวิดีโอ |
คําอธิบายวิดีโอ |
วิดีโอนี้อธิบายถึงขั้นตอนการเริ่มต้นใช้งานแอปพลิเคชันสองตัว OpenCL™ HelloWorld และ OpenCL Fast Fourier Transform (FFT) บน SoC Cyclone® V โดยใช้เครื่อง Windows* |
|
วิธีการเรียกใช้ Hello World และ (โปรแกรมอื่นๆ) ด้วย OpenCL บน Cyclone V SoC โดยใช้ Windows ส่วนที่ 2 |
วิดีโอนี้อธิบายถึงขั้นตอนการเริ่มต้นใช้งานแอปพลิเคชันสองตัว OpenCL HelloWorld และ OpenCL FFT บน SoC Cyclone V โดยใช้เครื่อง Windows |
วิธีการรัน Hello World และ (โปรแกรมอื่นๆ) ด้วย OpenCL บน Cyclone V SoC โดยใช้ Windows ส่วนที่ 3 |
วิดีโอนี้อธิบายถึงขั้นตอนการเริ่มต้นใช้งานแอปพลิเคชันสองตัว OpenCL HelloWorld และ OpenCL FFT บน SoC Cyclone V โดยใช้เครื่อง Windows |
วิธีการรัน Hello World และ (โปรแกรมอื่นๆ) ด้วย OpenCL บน Cyclone V SoC โดยใช้ Windows ส่วนที่ 4 |
วิดีโอนี้อธิบายถึงขั้นตอนการเริ่มต้นใช้งานแอปพลิเคชันสองตัว OpenCL HelloWorld และ OpenCL FFT บน SoC Cyclone V โดยใช้เครื่อง Windows |
วิธีการรัน Hello World และ (โปรแกรมอื่นๆ) ด้วย OpenCL บน Cyclone V SoC โดยใช้ Windows ส่วนที่ 5 |
วิดีโอนี้อธิบายถึงขั้นตอนการเริ่มต้นใช้งานแอปพลิเคชันสองตัว OpenCL HelloWorld และ OpenCL FFT บน SoC Cyclone V โดยใช้เครื่อง Windows |
วิธีการบรรจุโมดูล Verilog แบบกําหนดเอง/การออกแบบเป็นไลบรารี OpenCL |
วิดีโอนี้จะอธิบายเหตุผลที่ลูกค้าอาจใช้คุณสมบัตินี้เพื่อบล็อกการประมวลผลแบบกําหนดเอง (RTL) ในโค้ดเคอร์เนล OpenCL วิดีโออธิบายถึงตัวอย่างการออกแบบ เช่น makefiles และไฟล์กําหนดค่า และอธิบายโฟลว์การคอมไพล์ วิดีโอยังแสดงการสาธิตตัวอย่างการออกแบบด้วย |
OpenCL บน Altera® SoC FPGA (Linux* Host) – ส่วนที่ 1 - ดาวน์โหลดและตั้งค่าเครื่องมือ |
วิดีโอนี้แสดงให้คุณเห็นวิธีการดาวน์โหลด ติดตั้ง และกําหนดค่าเครื่องมือที่จําเป็นในการพัฒนาเคอร์เนล OpenCL และรหัสโฮสต์ที่กําหนดเป้าหมาย Altera®FPGAs SoC |
OpenCL บน Altera SoC FPGA (โฮสต์ Linux) – ส่วนที่ 2 - รันตัวอย่าง Vector Add ด้วยตัวจําลอง |
วิดีโอนี้แสดงให้คุณเห็นวิธีการดาวน์โหลดและคอมไพล์ตัวอย่างแอปพลิเคชัน OpenCL โดยมุ่งเป้าไปที่ตัวจําลองที่สร้างไว้ใน OpenCL |
OpenCL บน Altera SoC FPGA (Linux Host) – ส่วนที่ 3 - Kernel และการคอมไพล์โค้ดโฮสต์สําหรับ SoC FPGA |
วิดีโอนี้แสดงให้คุณเห็นวิธีคอมไพล์เคอร์เนล OpenCL และโค้ดโฮสต์โดยกําหนดเป้าหมายไปที่ FPGA และโปรเซสเซอร์ของ FPGA SoC Cyclone V |
OpenCL บน Altera SoC FPGA (โฮสต์ Linux) – ส่วนที่ 4 - การตั้งค่าสภาพแวดล้อมรันไทม์ |
วิดีโอนี้แสดงวิธีการตั้งค่า Cyclone V SoC Board เพื่อรันตัวอย่าง OpenCL และดําเนินการโค้ดโฮสต์และเคอร์เนลบนบอร์ด |
เนื้อหาในหน้านี้เป็นการผสมผสานระหว่างการแปลเนื้อหาต้นฉบับภาษาอังกฤษโดยมนุษย์และคอมพิวเตอร์ เนื้อหานี้จัดทำขึ้นเพื่อความสะดวกของคุณและเพื่อเป็นข้อมูลทั่วไปเท่านั้นและไม่ควรอ้างอิงว่าสมบูรณ์หรือถูกต้อง หากมีความขัดแย้งใด ๆ ระหว่างเวอร์ชันภาษาอังกฤษของหน้านี้กับคำแปล เวอร์ชันภาษาอังกฤษจะมีผลเหนือกว่าและควบคุม ดูเวอร์ชันภาษาอังกฤษของหน้านี้