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

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

สิ่งแวดล้อม

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

    การถ่ายโอนข้อมูลสแต็คอาจเกิดขึ้นระหว่างการคอมไพล์ OpenCL™ หากลูปมีการเขียนไปยังช่องสัญญาณดัชนี และจํานวนลูปเกินกว่าจํานวนแชนเนลที่จัดสรรไว้ ดูตัวอย่างโค้ดด้านล่าง

    my_channel อักขระที่ไม่ได้ออกแบบช่องสัญญาณ[16] __attribute__ ((ความลึก (1024)));
    ข้อมูลอักขระ[32];

    ...
    สําหรับ (char i ที่ไม่ได้ออกแบบ = 0; i < 32; i) {
    write_channel_intel (my_channel[i], ข้อมูล[i]);

    }

    ความละเอียด

    ตรวจสอบให้แน่ใจว่าจํานวนลูปไม่เคยเกินจํานวนช่องที่จัดสรร

    #define num_channels 32

    my_channel อักขระที่ไม่ออกแบบช่องสัญญาณ[num_channels] __attribute__((Depth(1024)));
    ข้อมูลอักขระ[num_channels];

    ...
    สําหรับ (อักขระที่ไม่ได้ออกแบบ i = 0; i < num_channels; i) {
    write_channel_intel (my_channel[i], ข้อมูล[i]);

    }

    ปัญหานี้ได้รับการแก้ไขแล้วด้วยเวอร์ชัน 19.1 ของ Intel® FPGA SDK สําหรับคอมไพเลอร์ OpenCL™

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

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

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

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