ID บทความ: 000073954 ประเภทข้อมูล: การแก้ไขปัญหา การตรวจสอบครั้งล่าสุด: 07/05/2020

ทําไมการดําเนินการเคอร์เนลและการถ่ายโอนข้อมูลหน่วยความจําไม่สามารถทํางานพร้อมกันได้แม้จะไม่มีการขึ้นต่อกันของเหตุการณ์ในโค้ดโฮสต์

สิ่งแวดล้อม

  • Intel® Quartus® Prime Pro Edition
  • เอฟพีจีเอ Intel® SDK สำหรับ OpenCL™
  • BUILT IN - ARTICLE INTRO SECOND COMPONENT
    คำอธิบาย

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

    ความละเอียด

    นี่เป็นเพราะข้อบกพร่องในเวอร์ชั่น 19.1 และ 19.2 ของ Intel® FPGA SDK สําหรับ OpenCL™ ซึ่งทําให้เกิดการเปิดตัวเคอร์เนลล่าช้าเมื่อมี DDR เข้าถึงได้พร้อมกันจากโฮสต์และเคอร์เนล เคอร์เนลเปิดตัวได้รับความล่าช้าแม้ว่าเคอร์เนลและโฮสต์กําลังเข้าถึงส่วนต่างๆ ของหน่วยความจํา DDR

    การพึ่งพาการเปิดตัวเคอร์เนลไม่ถูกต้องได้รับการแก้ไขในเวอร์ชัน 19.3 ของ Intel® FPGA SDK สําหรับ OpenCL™

    ผลิตภัณฑ์ที่เกี่ยวข้อง

    บทความนี้จะนำไปใช้กับ 1 ผลิตภัณฑ์

    อุปกรณ์ที่ตั้งโปรแกรมได้ Intel®

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