Intel® FPGA SDK สําหรับ OpenCL™ - ศูนย์สนับสนุน
ยินดีต้อนรับสู่หน้าการสนับสนุน Intel® FPGA SDK สําหรับ OpenCL! ที่นี่คุณจะพบข้อมูลเกี่ยวกับวิธีจําลอง คอมไพล์ และโปรไฟล์เคอร์เนลของคุณ นอกจากนี้ยังมีแนวทางเกี่ยวกับวิธีการเพิ่มประสิทธิภาพเคอร์เนลของคุณ รวมถึงข้อมูลเกี่ยวกับวิธีดีบักระบบของคุณในขณะที่เรียกใช้แอปพลิเคชันโฮสต์ หน้านี้จัดให้มีสองหมวดหมู่หลักตามแพลตฟอร์มการพัฒนา ซึ่งก็คือนักพัฒนาเคอร์เนลสําหรับนักพัฒนาFPGAและโฮสต์โค้ดสําหรับ CPU
ขอให้สนุกกับการเดินทางของคุณ!
Intel FPGA SDK สําหรับ OpenCL ช่วยให้นักพัฒนาซอฟต์แวร์เร่งความเร็วแอปพลิเคชันของพวกเขาโดยการกําหนดเป้าหมายแพลตฟอร์มที่แตกต่างกันด้วย CPU และFPGAs Intel Intel FPGA SDK สําหรับ OpenCL สามารถติดตั้งเป็นส่วนหนึ่งของซอฟต์แวร์ Intel® Quartus® Prime หรือเป็นแพ็คเกจแยกต่างหากได้ คุณสามารถดาวน์โหลด Intel FPGA SDK สําหรับ OpenCL ได้จากลิงก์ด้านล่าง โปรดดูที่ส่วน ข้อกําหนดซอฟต์แวร์ ด้านล่างสําหรับข้อกําหนดเบื้องต้น
ข้อกําหนดซอฟต์แวร์
คุณต้องมีสิทธิ์ของผู้ดูแลระบบในระบบการพัฒนาเพื่อติดตั้งแพ็คเกจและไดรเวอร์ที่จําเป็นสําหรับการพัฒนาซอฟต์แวร์โฮสต์
ระบบโฮสต์ต้องใช้งานระบบปฏิบัติการ 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 Package Manager แต่เดิมคือ Red Hat Package Manager)
- คอมไพเลอร์ 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 สําหรับการจําลองซึ่งสามารถใช้เพื่อทดสอบฟังก์ชั่นการทํางานของเคอร์เนล
aoc -list-boards
- พิมพ์รายการบอร์ดและทางออกที่มีอยู่
aoc -help
- พิมพ์รายการตัวเลือกคําสั่ง 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 ปัจจุบันไม่รองรับอินเทอร์เฟซการเขียนโปรแกรมแอปพลิเคชัน OpenCL 2.0 ทั้งหมด (API) หากคุณใช้ส่วนหัว OpenCL 2.0 และโทรติดต่อ API ที่ไม่รองรับ การโทรจะส่งคืนรหัสข้อผิดพลาดเพื่อระบุว่า API ไม่รองรับอย่างสมบูรณ์
Intel FPGA SDK สําหรับรันไทม์โฮสต์ OpenCL สอดคล้องกับเลเยอร์แพลตฟอร์ม OpenCL และ API พร้อมการชี้แจงและข้อยกเว้นบางอย่าง ซึ่งสามารถดูได้ที่ สถานะการสนับสนุนของคุณสมบัติ OpenCL ของIntel FPGA SDK สําหรับคู่มือการเขียนโปรแกรม OpenCL
ลิงก์ที่เกี่ยวข้องอื่นๆ:
- สําหรับข้อมูลเพิ่มเติมเกี่ยวกับ OpenCL โปรดไปที่หน้า ภาพรวม OpenCL ของ Kronos Group
- สามารถดูสถานะความสอดคล้องในปัจจุบันได้ที่ หน้าโปรแกรม Kronos Group Adopter
- สําหรับข้อมูลเพิ่มเติมเกี่ยวกับมาตรฐาน OpenCL 1.0 โปรดดู ข้อมูลจําเพาะ OpenCL โดย Khronos
ส่วนขยาย OpenCL
ช่องสัญญาณ (I/Os หรือ 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แบบหลายขั้นตอนสําหรับการออกแบบ OpenCL
การจําลองและการดีบักส่วน OpenCL Kernel ของคุณ จากคู่มือการเขียนโปรแกรมมีรายละเอียดเพิ่มเติมเกี่ยวกับความแตกต่างระหว่างเคอร์เนลบนฮาร์ดแวร์และการจําลอง
ลิงก์ที่เกี่ยวข้องอื่นๆ:
- การจําลองและการดีบักเคอร์เนล OpenCL ของคุณ
- การจําลองช่องสัญญาณ I/O
- การตรวจสอบฟังก์ชัน Host Runtime ผ่านการจําลอง (Windows)
- การตรวจสอบฟังก์ชัน Host Runtime ผ่าน Emulation (Linux)
ปรับ แต่ง
ด้วย Intel® FPGA SDK สําหรับเทคโนโลยี OpenCL™ Offline Compiler คุณไม่จําเป็นต้องเปลี่ยนเคอร์เนลของคุณเพื่อให้พอดีกับสถาปัตยกรรมฮาร์ดแวร์แบบคงที่อย่างเหมาะสม แต่คอมไพเลอร์แบบออฟไลน์จะปรับแต่งสถาปัตยกรรมฮาร์ดแวร์โดยอัตโนมัติเพื่อตอบสนองความต้องการเคอร์เนลของคุณ
โดยทั่วไปแล้ว คุณควรปรับเคอร์เนลที่มุ่งเป้าไปยังหน่วยประมวลผลเดียวก่อน หลังจากที่คุณปรับหน่วยประมวลผลนี้ให้เหมาะสมแล้ว ให้เพิ่มประสิทธิภาพด้วยการปรับขนาดฮาร์ดแวร์ให้เต็มส่วนที่เหลือของFPGA ฐานฮาร์ดแวร์ของเคอร์เนลจะสัมพันธ์กับเวลาที่ใช้สําหรับการคอมไพล์ฮาร์ดแวร์ ดังนั้นการเพิ่มประสิทธิภาพที่มากขึ้นที่คุณสามารถทําได้ด้วยขนาดที่เล็กลง (นั่นคือหน่วยการประมวลผลเดียว) การคอมไพล์ฮาร์ดแวร์ที่มากขึ้นที่คุณสามารถดําเนินการได้ในระยะเวลาหนึ่งๆ
การเพิ่มประสิทธิภาพ OpenCL สําหรับFPGAs Intel
เพื่อเพิ่มประสิทธิภาพการใช้งานการออกแบบของคุณและรับประสิทธิภาพสูงสุด ทําความเข้าใจประสิทธิภาพสูงสุดตามทฤษฎีของคุณและเข้าใจว่าข้อจํากัดของคุณคืออะไร ทําตามขั้นตอนเหล่านี้:
- เริ่มต้นด้วยการใช้งานฟังก์ชั่นการทํางานที่ดีที่รู้จักกันดีที่รู้จักกันดี
- ใช้โปรแกรมจําลองเพื่อตรวจสอบฟังก์ชันการทํางาน
- ลบหรือลดแผงลอยของไปป์ไลน์ที่รายงานด้วยรายงานการเพิ่มประสิทธิภาพ
- วางแผนการเข้าถึงหน่วยความจําเพื่อแบนด์วิดธ์หน่วยความจําที่ดีที่สุด
- ใช้โปรไฟล์เพื่อดีบักปัญหาด้านประสิทธิภาพ
Profiler ให้ข้อมูลเชิงลึกเกี่ยวกับประสิทธิภาพของระบบมากขึ้น ซึ่งจะช่วยให้คุณทิศทางในการเพิ่มประสิทธิภาพอัลกอริธึมในการใช้หน่วยความจํา
โปรดระลึกว่าสําหรับFPGAs สามารถจัดสรรทรัพยากรได้มากขึ้น ยิ่งมีการจัดการข้อมูลให้มากขึ้น ขนาน และประสิทธิภาพที่สูงขึ้น
รายงานและแหล่งข้อมูลที่เป็นประโยชน์สําหรับการเพิ่มประสิทธิภาพ
มีรายงานที่สร้างขึ้นโดยระบบมากมายสําหรับผู้ใช้ รายงานเหล่านี้ให้ข้อมูลเชิงลึกเกี่ยวกับโค้ด การใช้งานแหล่งข้อมูล และคําแนะนําเกี่ยวกับตําแหน่งที่จะมุ่งเน้นเพื่อปรับปรุงประสิทธิภาพให้ดีขึ้น:
- รายงานการวิเคราะห์ลูปของตัวอย่างการออกแบบ OpenCL
- การตรวจสอบข้อมูลเกี่ยวกับการจําลองแบบหน่วยความจําและแผงลอย
- การตรวจสอบข้อมูลพื้นที่
- รายงาน HTML: ข้อความรายงานพื้นที่
การเพิ่มประสิทธิภาพหน่วยความจํา
การทําความเข้าใจระบบหน่วยความจําเป็นสิ่งสําคัญในการปรับใช้แอปพลิเคชันอย่างมีประสิทธิภาพโดยใช้ OpenCL
Global Memory Interconnect
ซึ่งแตกต่างจาก GPU FPGAสามารถสร้างหน่วยโหลดสโตร์แบบกําหนดเอง (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
แผงลอย การครองชีพ แบนด์วิดธ์
กําหนดค่าเคอร์เนลของคุณเพื่อระบุปัญหาคอขวดด้านประสิทธิภาพ สําหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีการที่ข้อมูลการสร้างโปรไฟล์ช่วยให้คุณระบุพฤติกรรมของหน่วยความจําหรือแชนแนลที่บกพร่องซึ่งนําไปสู่ประสิทธิภาพเคอร์เนลที่ไม่น่าพอใจ โปรดดูที่ โปรไฟล์ Kernel ของคุณเพื่อระบุปัญหาคอขวดด้านประสิทธิภาพ ของ Intel FPGA SDK สําหรับคู่มือแนวทางปฏิบัติที่ดีที่สุดของ OpenCL
การเพิ่มประสิทธิภาพลูป
เทคนิคบางอย่างสําหรับการเพิ่มประสิทธิภาพลูปมีดังนี้:
สําหรับเคล็ดลับบางประการในการลบการพึ่งพาลูปในสถานการณ์ต่างๆ สําหรับเคอร์เนลรายการงานเดียว โปรดดูที่ ส่วนการลบการขึ้นต่อกันของลูป ของ 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 โดเมนเวลา
ตัวอย่างการออกแบบนี้ใช้การวัดประสิทธิภาพตัวกรองการตอบกลับแบบ finite Impulse Response (FIR) โดเมนเวลาจากชุดการวัดประสิทธิภาพ HPEC Challenge
การออกแบบนี้เป็นตัวอย่างที่ยอดเยี่ยมว่าFPGAsสามารถให้ประสิทธิภาพที่ดีกว่าสถาปัตยกรรม GPU สําหรับตัวกรอง FIR จุดลอยตัวได้อย่างไร
ตัวอย่างนี้อธิบาย:
- การเพิ่มประสิทธิภาพจุดลอยตัวที่มีความแม่นยําเดียว
- การใช้งานบัฟเฟอร์หน้าต่างแบบเลื่อน 1D ที่มีประสิทธิภาพ
- วิธีการเพิ่มประสิทธิภาพเคอร์เนลรายการเดียว
ตัวอย่างการออกแบบการลดระดับวิดีโอ
ตัวอย่างการออกแบบนี้ใช้ตัวจัดวางวิดีโอที่ใช้วิดีโออินพุต 1080p และเอาต์พุตวิดีโอ 720p ที่ 110 เฟรมต่อวินาที ตัวอย่างนี้ใช้เคอร์เนลหลายตัวในการอ่านและเขียนไปยังหน่วยความจําทั่วโลกอย่างมีประสิทธิภาพ
ตัวอย่างนี้อธิบาย
- ช่องสัญญาณเคอร์เนล
- เคอร์เนลหลายเคอร์เนลพร้อมกัน
- ช่องสัญญาณ Kernel-to-kernel
- รูปแบบการออกแบบหน้าต่างแบบเลื่อน
- การปรับแต่งรูปแบบการเข้าถึงหน่วยความจํา
ตัวอย่างการออกแบบออปติคอลโฟลว์
ตัวอย่างการออกแบบนี้เป็นการใช้งาน 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 ของคุณใน Intel FPGA SDK สําหรับคู่มือการเขียนโปรแกรม OpenCL มีข้อมูลเพิ่มเติมเกี่ยวกับวิธีการกําหนดค่าเคอร์เนลของคุณ
วิธีวิเคราะห์ข้อมูลโปรไฟล์
ข้อมูลโปรไฟล์ช่วยให้คุณระบุพฤติกรรมของหน่วยความจําหรือแชนแนลที่ต่ําซึ่งนําไปสู่ประสิทธิภาพเคอร์เนลที่ไม่น่าพอใจ โปรไฟล์ เคอร์เนลของคุณเพื่อระบุปัญหาคอขวดด้านประสิทธิภาพ ของ Intel FPGA SDK สําหรับแนวทางปฏิบัติที่ดีที่สุด OpenCL มีข้อมูลเชิงลึกเพิ่มเติมเกี่ยวกับ GUI ตัวกําหนดค่าแบบไดนามิก และวิธีการตีความข้อมูลการสร้างโปรไฟล์ เช่น แผงลอย แบนด์วิดธ์ แคช Hit เป็นต้น นอกจากนี้ยังมีการวิเคราะห์ Profiler ของสถานการณ์ตัวอย่างการออกแบบ OpenCL หลายสถานการณ์
2. ผู้พัฒนารหัสโฮสต์
ไลบรารีโฮสต์รันไทม์
Intel® FPGA SDK สําหรับ OpenCL™ มีคอมไพเลอร์และเครื่องมือสําหรับคุณในการสร้างและใช้งานแอปพลิเคชัน OpenCL ที่มุ่งเป้าไปที่ผลิตภัณฑ์Intel FPGA
หากคุณต้องการเพียง Intel FPGA SDK สําหรับฟังก์ชันการปรับใช้เคอร์เนลของ OpenCL ให้ดาวน์โหลดและติดตั้ง Intel FPGA Runtime Environment (RTE) สําหรับ OpenCL
RTE เป็นบางส่วนของ Intel FPGA SDK สําหรับ OpenCL ซึ่งแตกต่างจาก SDK ซึ่งให้สภาพแวดล้อมที่เปิดใช้งานการพัฒนาและการปรับใช้โปรแกรมเคอร์เนล OpenCL RTE มีเครื่องมือและส่วนประกอบรันไทม์ที่ช่วยให้คุณสามารถสร้างและดําเนินการโปรแกรมโฮสต์ และดําเนินการโปรแกรมเคอร์เนล OpenCL ที่คอมไพล์ไว้ล่วงหน้าบนบอร์ดเร่งความเร็วเป้าหมาย
อย่าติดตั้ง SDK และ RTE บนระบบโฮสต์เดียวกัน SDK มี RTE อยู่แล้ว
ยูทิลิตี้และโฮสต์รันไทม์ไลบรารี
RTE for OpenCL มียูทิลิตี้ โฮสต์รันไทม์ไลบรารี ไดรเวอร์ และไลบรารีและไฟล์ RTE เฉพาะ
- RTE Utility ประกอบด้วยคําสั่งที่คุณสามารถเรียกใช้งานระดับสูงได้ ยูทิลิตี้ RTE เป็นชุดย่อยของ Intel FPGA SDK สําหรับยูทิลิตี้ OpenCL
- รันไทม์โฮสต์มี API แพลตฟอร์มโฮสต์ OpenCL และ runtime API สําหรับแอปพลิเคชันโฮสต์ OpenCL ของคุณ
รันไทม์โฮสต์ประกอบด้วยไลบรารีต่อไปนี้:
- ไลบรารีที่มีการเชื่อมโยงแบบสแตติกจะมี OpenCL host API, เครื่องหมายนามธรรมฮาร์ดแวร์ และไลบรารีตัวช่วยเหลือ
- Dynamic link libraries (DLLs) มาพร้อมส่วนประกอบฮาร์ดแวร์และไลบรารีตัวช่วยเหลือ
สําหรับข้อมูลเพิ่มเติมเกี่ยวกับยูทิลิตี้และไลบรารีรันไทม์โฮสต์ โปรดดู ที่เนื้อหาของIntel FPGA RTE สําหรับ OpenCL ในส่วนของ Intel FPGA RTE สําหรับคู่มือการเริ่มต้นใช้งาน OpenCL
การสตรีมข้อมูล (Host Channel)
ตอนนี้คุณสามารถลดความหน่วงของระบบของคุณได้อย่างมากโดยใช้ช่องโฮสต์ที่ช่วยให้สตรีมข้อมูลจากโฮสต์สามารถสตรีมโดยตรงไปยังเคอร์เนลFPGAผ่านอินเทอร์เฟซ PCIe* ในขณะที่ข้ามตัวควบคุมหน่วยความจํา เคอร์เนล FPGA สามารถเริ่มประมวลผลข้อมูลได้ทันทีและไม่จําเป็นต้องรอให้การถ่ายโอนข้อมูลเสร็จสมบูรณ์ ช่องโฮสต์ได้รับการสนับสนุนในอินเทอร์เฟซการเขียนโปรแกรมแอปพลิเคชันรันไทม์ OpenCL (API) และรวมถึงการรองรับการจําลอง
หากต้องการทราบรายละเอียดเพิ่มเติมเกี่ยวกับช่องโฮสต์และการรองรับการจําลอง โปรดดูที่ส่วน Emulating I/O Channels ของ Intel® FPGA SDK สําหรับคู่มือการเขียนโปรแกรม OpenCL™
การรวบรวมข้อมูล
โปรไฟล์ช่วยให้คุณเรียนรู้ว่าโปรแกรมของคุณใช้เวลาอยู่ที่ใดและฟังก์ชั่นต่างๆ ที่เรียกว่าคืออะไร ข้อมูลนี้แสดงให้คุณเห็นว่าส่วนใดของโปรแกรมของคุณทํางานช้ากว่าที่คุณคาดไว้ ซึ่งอาจต้องมีการเขียนโปรแกรมใหม่เพื่อการดําเนินการโปรแกรมที่รวดเร็วขึ้น นอกจากนี้ยังสามารถบอกได้ว่าฟังก์ชันใดที่ถูกเรียกว่าบ่อยกว่าหรือน้อยกว่าที่คุณคาดไว้
gprof
gprof เป็นเครื่องมือโอเพนซอร์สที่มีให้มาในระบบปฏิบัติการ Linux* สําหรับรวบรวมข้อมูลโค้ดต้นฉบับ โดยสามารถทําการสุ่มตัวอย่างตามเวลาได้ ในระหว่างช่วงเวลาต่างๆ เคาน์เตอร์ของโปรแกรมจะถูกแทรกแซงเพื่อตัดสินใจว่าการดําเนินการมาถึงที่จุดใดของรหัส
ในการใช้ gprof ให้คอมไพล์รหัสต้นทางอีกครั้งโดยใช้แฟลกการสร้างโปรไฟล์คอมไพเลอร์ -pg
เรียกใช้ไฟล์ปฏิบัติการเพื่อสร้างไฟล์ที่มีข้อมูลโปรไฟล์:
ไฟล์เฉพาะชื่อ "gmon.out" ที่มีข้อมูลทั้งหมดที่เครื่องมือ gprof ต้องใช้ในการสร้างข้อมูลประวัติที่มนุษย์อ่านได้ถูกสร้างขึ้น ดังนั้นตอนนี้ใช้เครื่องมือ gprof ด้วยวิธีต่อไปนี้:
$ gprof Source Code gmon.out > profile_data.txt
profile_data.txt เป็นไฟล์ที่มีข้อมูลที่เครื่องมือ gprof ใช้เพื่อสร้างข้อมูลโปรไฟล์ที่มนุษย์อ่านได้ ซึ่งประกอบด้วยสองส่วน: โปรไฟล์แบนและกราฟการโทร
โปรไฟล์แบบแบนจะแสดงระยะเวลาที่โปรแกรมของคุณใช้ในแต่ละฟังก์ชัน และจํานวนครั้งที่ฟังก์ชันนั้นถูกเรียกว่า
กราฟการโทรแสดงขึ้น สําหรับแต่ละฟังก์ชัน ซึ่งมีฟังก์ชันที่เรียกว่า ซึ่งฟังก์ชันอื่นๆ ที่เรียกว่า และจํานวนครั้ง นอกจากนี้ยังมีการประมาณระยะเวลาที่ใช้ในงานย่อยของแต่ละฟังก์ชัน
ข้อมูลเพิ่มเติมเกี่ยวกับการใช้ gprof สําหรับการทําโปรไฟล์มีอยู่ในเว็บไซต์ GNU
เครื่องขยายเสียงVTune™ Intel®
Intel® VTune™ Amplifier ที่ใช้สําหรับการสร้างโปรไฟล์ช่วยให้คุณเร่งความเร็วและเพิ่มประสิทธิภาพการดําเนินการโค้ดของคุณบนแพลตฟอร์มฝัง Linux, Android* หรือระบบ Windows* ที่ให้การวิเคราะห์ประเภทต่อไปนี้:
- การวิเคราะห์ประสิทธิภาพ: ค้นหาปัญหาคอขวดของโค้ดแบบอนุกรมและแบบขนาน วิเคราะห์ตัวเลือกอัลกอริทึม และการใช้งานกลไก GPU และทําความเข้าใจว่าแอปพลิเคชันของคุณสามารถได้รับประโยชน์จากทรัพยากรฮาร์ดแวร์ที่มีอยู่ได้อย่างไรและอย่างไร
- การวิเคราะห์Intel Energy Profiler: วิเคราะห์เหตุการณ์พลังงานและระบุเหตุการณ์พลังงานที่สิ้นเปลือง
สําหรับข้อมูลเพิ่มเติมเกี่ยวกับ Intel V-tune Amplifier โปรดไปที่ เว็บไซต์เริ่มต้นใช้งาน Intel VTune Amplifier 2018 สําหรับ Linux OS
มัลติเธรด
มัลติเธรดแบบไปป์ไลน์โฮสต์ OpenCL™ ให้เฟรมเวิร์กเพื่อให้ได้ทรูพุตสูงสําหรับอัลกอริทึมที่จําเป็นต้องประมวลผลข้อมูลอินพุตจํานวนมากและกระบวนการสําหรับแต่ละข้อมูลต้องดําเนินการตามลําดับ หนึ่งในแอพพลิเคชั่นที่ดีที่สุดของเฟรมเวิร์กนี้อยู่ในแพลตฟอร์มที่แตกต่างกันที่ใช้ฮาร์ดแวร์หรือแพลตฟอร์มที่มีทรูพุตสูงเพื่อเร่งความเร็วส่วนที่ใช้เวลานานที่สุดของแอปพลิเคชัน ส่วนที่เหลือของอัลกอริธึมต้องทํางานตามลําดับบนแพลตฟอร์มอื่น เช่น CPU เพื่อเตรียมข้อมูลอินพุตสําหรับงานที่เร่งความเร็วหรือเพื่อใช้เอาต์พุตของงานนั้นเพื่อเตรียมเอาต์พุตสุดท้าย ในสถานการณ์นี้ แม้ว่าประสิทธิภาพของอัลกอริทึมจะเพิ่มขึ้นบางส่วน แต่อัตราความเร็วของระบบทั้งหมดจะลดลงอย่างมากเนื่องจากธรรมชาติตามลําดับของอัลกอริธึมดั้งเดิม
ใน 831 นี้: Intel FPGA SDK สําหรับหมายเหตุแอปพลิเคชันแบบไปป์ไลน์โฮสต์ OpenCL จะมีการเสนอเฟรมเวิร์กแบบไปป์ไลน์ใหม่สําหรับการออกแบบที่มีทรูพุตสูง เฟรมเวิร์กนี้เหมาะที่สุดสําหรับการประมวลผลข้อมูลอินพุตขนาดใหญ่ผ่านอัลกอริธึมที่การพึ่งพาข้อมูลจะบังคับให้ดําเนินการตามลําดับของทุกขั้นตอนหรืองานของอัลกอริธึม
FPGA Initiailization จากโฮสต์
FPGAsมีการใช้อย่างมากในพื้นที่เร่งความเร็ว OpenCL มีวิธีการเฉพาะที่ CPU ใช้ในการถ่ายข้อมูลงานเพื่อFPGA ไฟล์ที่แนบมาด้านล่างมีขั้นตอนการเตรียมใช้งานทั่วไปที่จําเป็นสําหรับรหัสโฮสต์เพื่อเปิดใช้งานเคอร์เนลFPGA ดาวน์โหลดไฟล์ที่มีขั้นตอนการเตรียมใช้งานที่นี่
ฟังก์ชัน init() สามารถเรียกได้จากฟังก์ชัน main() เพื่อเริ่มต้นFPGA รหัสแรกพบอุปกรณ์ที่เคอร์เนลจะทํางาน จากนั้นตั้งโปรแกรมด้วย aocx ที่ให้ไว้ในไดเรกทอรีเดียวกันกับโฮสต์ที่ทํางานได้ หลังจากขั้นตอนการเริ่มต้นในโค้ด ผู้ใช้ต้องตั้งค่าเคอร์เนลให้สอดคล้องตามความต้องการในการออกแบบ
นอกจากนี้ยังมีฟังก์ชันการล้างข้อมูล() ที่ให้ทรัพยากรว่างหลังจากดําเนินการเคอร์เนล
3. ดีบัก
จำลอง
สามารถใช้ Intel® FPGA SDK สําหรับ OpenCL™ Emulator เพื่อตรวจสอบฟังก์ชั่นการทํางานของเคอร์เนล ผู้ใช้สามารถดีบักฟังก์ชันเคอร์เนล OpenCL เป็นส่วนหนึ่งของแอปพลิเคชันโฮสต์ในระบบ Linux* คุณสมบัติการดีบักที่มาพร้อมกับ Intel FPGA SDK สําหรับ OpenCL Emulator ช่วยให้คุณสามารถทําเช่นนั้นได้
สําหรับข้อมูลเพิ่มเติม โปรดดูที่ส่วนเหล่านี้ใน Intel FPGA SDK สําหรับคู่มือการเขียนโปรแกรม OpenCL:
การสร้างโปรไฟล์
สําหรับข้อมูลเพิ่มเติมเกี่ยวกับการสร้างโปรไฟล์ โปรดดูส่วนเหล่านี้ใน Intel® FPGA SDK สําหรับคู่มือการเขียนโปรแกรม OpenCL™:
ตัวแปรดีบักรันไทม์ |
|
---|---|
มีตัวแปรสภาพแวดล้อมบางอย่างที่สามารถตั้งค่าให้รับข้อมูลดีบักได้มากขึ้นในขณะที่เรียกใช้แอปพลิเคชันโฮสต์ Intel® FPGA SDK สําหรับตัวแปรสภาพแวดล้อมเฉพาะของ OpenCL™ ซึ่งสามารถช่วยวิเคราะห์ปัญหาเกี่ยวกับการออกแบบแพลตฟอร์มแบบกําหนดเองได้ ตารางต่อไปนี้แสดงรายการตัวแปรสภาพแวดล้อมเหล่านี้ทั้งหมด และอธิบายโดยละเอียด | |
ชื่อตัวแปรสภาพแวดล้อม | คำ อธิบาย |
ACL_HAL_DEBUG |
ตั้งค่าตัวแปรนี้เป็น 1 ถึง 5 เพื่อเพิ่มผลลัพธ์การดีบักจากเลเยอร์นามธรรมฮาร์ดแวร์ (HAL) ซึ่งจะเชื่อมต่อโดยตรงกับเลเยอร์ MMD |
ACL_PCIE_DEBUG |
ตั้งค่าตัวแปรนี้เป็นค่า 1 ถึง 10,000 เพื่อเพิ่มผลลัพธ์การดีบักจาก MMD การตั้งค่าตัวแปรนี้มีประโยชน์สําหรับการยืนยันว่าการลงทะเบียน ID เวอร์ชันถูกอ่านอย่างถูกต้องและคอร์ UNiPHY IP ได้รับการปรับเทียบ |
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 สําหรับ OpenCL ช่วยวิเคราะห์และแก้ไขปัญหาการติดตั้ง/การตั้งค่าต่างๆ ฮาร์ดแวร์และซอฟต์แวร์ที่เกิดขึ้นในขณะที่ทํางานกับ Intel FPGA SDK สําหรับ OpenCL เครื่องมือทําการทดสอบการติดตั้ง การทดสอบอุปกรณ์ และการทดสอบการเชื่อมต่อ สําหรับข้อมูลเพิ่มเติมเกี่ยวกับเครื่องมือ โปรดดูการนําเสนอนี้ หากต้องการใช้เครื่องมือ ให้ดาวน์โหลดจาก ที่นี่
เทคนิคการดีบักอื่นๆ
เนื่องจากลูปในโปรแกรมโฮสต์ ผู้ใช้อาจประสบปัญหาระบบ OpenCL™ ทํางานช้าลงขณะเรียกใช้งาน หากต้องการทราบรายละเอียดเพิ่มเติมเกี่ยวกับสถานการณ์ดังกล่าว โปรดดู การดีบักระบบ OpenCL ของคุณที่กําลังค่อยๆ ลดความเร็ว ลงในส่วนของ Intel® FPGA SDK สําหรับคู่มือการเขียนโปรแกรม OpenCL
Intel Code Builder for 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สําหรับปัญหาเฉพาะที่เกี่ยวข้องกับการออกแบบและรันขั้นตอน:
4. ตัวอย่างการออกแบบ
ตัวอย่างการออกแบบ OpenCL
มีตัวอย่างการออกแบบมากมายสําหรับอธิบายแอปพลิเคชันต่างๆ ใน OpenCL™ ผู้ใช้สามารถคอมไพล์และดําเนินการออกแบบเหล่านี้บนโฮสต์ด้วยบอร์ดFPGAที่รองรับIntel® FPGA SDK สําหรับ OpenCL
สําหรับตัวอย่างการออกแบบ OpenCL เพิ่มเติม โปรดดู ที่เว็บไซต์ OpenCL Developer Zone
5. การฝึกอบรมที่แนะนํา
หลักสูตรการฝึกอบรม
ดูหลักสูตรการฝึกอบรม OpenCL™ ต่อไปนี้:
- ข้อมูลเบื้องต้นเกี่ยวกับ OpenCL SDK สําหรับ SDK Intel FPGA
- พื้นฐานเกี่ยวกับการประมวลผลแบบขนานกับ OpenCL™ บนFPGAs Intel®
- การเขียน OpenCL บนFPGAs Intel
- เรียกใช้ OpenCL บนFPGAs Intel
- เทคนิคการปรับแต่งประสิทธิภาพ OpenCL: ตัวอย่างอัลกอริทึมการแฮชที่ปลอดภัย (SHA-1)
- เทคนิคการปรับแต่งประสิทธิภาพ OpenCL: ตัวอย่างอัลกอริธึมการประมวลผลภาพ
- เคอร์เนลเธรดเดียวเทียบกับเคอร์เนลแบบมัลติเธรด
- การเพิ่มประสิทธิภาพและการจําลองโฟลว์ใน Intel FPGA SDK สําหรับ OpenCL
- หลักสูตรการฝึกอบรม OpenCL อื่นๆ
วิดีโอด่วน OpenCL™ |
|
---|---|
ชื่อวิดีโอ |
คําอธิบายวิดีโอ |
วิดีโอนี้อธิบายถึงขั้นตอนการเปิดกล่องสําหรับเรียกใช้งานสองแอปพลิเคชัน OpenCL™ HelloWorld และ OpenCL fast Fourier Transform (FFT) บน Cyclone® V SoC โดยใช้เครื่อง Windows* |
|
วิธีการใช้งาน Hello World และ (โปรแกรมอื่นๆ) ด้วย OpenCL บน Cyclone V SoC โดยใช้ Windows ส่วนที่ 2 |
วิดีโอนี้อธิบายถึงขั้นตอนการเริ่มใช้งานสองแอปพลิเคชัน, OpenCL HelloWorld และ OpenCL FFT บน Cyclone V SoC โดยใช้เครื่อง Windows |
วิธีการใช้งาน Hello World และ (โปรแกรมอื่นๆ) ด้วย OpenCL บน Cyclone V SoC โดยใช้ Windows ส่วนที่ 3 |
วิดีโอนี้อธิบายถึงขั้นตอนการเริ่มใช้งานสองแอปพลิเคชัน, OpenCL HelloWorld และ OpenCL FFT บน Cyclone V SoC โดยใช้เครื่อง Windows |
วิธีการใช้งาน Hello World และ (โปรแกรมอื่นๆ) ด้วย OpenCL บน Cyclone V SoC โดยใช้ Windows ส่วนที่ 4 |
วิดีโอนี้อธิบายถึงขั้นตอนการเริ่มใช้งานสองแอปพลิเคชัน, OpenCL HelloWorld และ OpenCL FFT บน Cyclone V SoC โดยใช้เครื่อง Windows |
วิดีโอนี้อธิบายถึงขั้นตอนการเริ่มใช้งานสองแอปพลิเคชัน, OpenCL HelloWorld และ OpenCL FFT บน Cyclone V SoC โดยใช้เครื่อง Windows |
|
วิธีบรรจุโมดูล/การออกแบบ Verilog แบบกําหนดเองเป็นไลบรารี OpenCL |
วิดีโออธิบายถึงสาเหตุที่ลูกค้าอาจใช้คุณสมบัตินี้เพื่อให้มีบล็อคการประมวลผลแบบกําหนดเอง (RTL) ในโค้ดเคอร์เนล OpenCL วิดีโออธิบายถึงตัวอย่างการออกแบบ เช่น ไฟล์ makefiles และกําหนดค่า และอธิบายขั้นตอนการคอมไพล์ วิดีโอยังแสดงตัวอย่างการออกแบบด้วย |
OpenCL บน Altera® SoC FPGA (Linux* Host) – ส่วนที่ 1 – ดาวน์โหลดและตั้งค่าเครื่องมือ |
วิดีโอนี้แสดงให้คุณเห็นวิธีการดาวน์โหลด ติดตั้ง และกําหนดค่าเครื่องมือที่จําเป็นในการพัฒนาเคอร์เนล OpenCL และรหัสโฮสต์ที่กําหนดเป้าหมายAltera® soC FPGAs |
วิดีโอนี้แสดงให้คุณเห็นวิธีการดาวน์โหลดและคอมไพล์ตัวอย่างแอปพลิเคชัน OpenCL ที่มุ่งเป้าไปที่โปรแกรมจําลองที่สร้างขึ้นใน OpenCL |
|
วิดีโอนี้แสดงให้คุณเห็นวิธีการคอมไพล์เคอร์เนล OpenCL และรหัสโฮสต์ที่มุ่งเป้าไปที่FPGAและโปรเซสเซอร์ของFPGA SoC Cyclone V |
|
OpenCL บนFPGA SoC Altera (Linux Host) – ส่วนที่ 4 – การตั้งค่าสภาพแวดล้อมรันไทม์ |
วิดีโอนี้แสดงวิธีการตั้งค่าบอร์ด Cyclone V SoC เพื่อเรียกใช้งานตัวอย่าง OpenCL และดําเนินการรหัสโฮสต์และเคอร์เนลบนบอร์ด |
เนื้อหาในหน้านี้เป็นการผสมผสานระหว่างการแปลเนื้อหาต้นฉบับภาษาอังกฤษโดยมนุษย์และคอมพิวเตอร์ เนื้อหานี้จัดทำขึ้นเพื่อความสะดวกของคุณและเพื่อเป็นข้อมูลทั่วไปเท่านั้นและไม่ควรอ้างอิงว่าสมบูรณ์หรือถูกต้อง หากมีความขัดแย้งใด ๆ ระหว่างเวอร์ชันภาษาอังกฤษของหน้านี้กับคำแปล เวอร์ชันภาษาอังกฤษจะมีผลเหนือกว่าและควบคุม ดูเวอร์ชันภาษาอังกฤษของหน้านี้