ID bài viết: 000073897 Loại nội dung: Xử lý sự cố Lần duyệt cuối: 23/01/2019

Tại sao kết xuất ngăn xếp xảy ra trong quá trình biên dịch nhân OpenCL™ nếu số vòng lặp vượt quá số kênh được phân bổ?

Môi Trường

  • Intel® Quartus® Prime Phiên bản Pro
  • Intel® Quartus® Prime Phiên bản Tiêu chuẩn
  • SDK FPGA Intel® cho OpenCL™
  • BUILT IN - ARTICLE INTRO SECOND COMPONENT
    Mô tả

    Kết xuất ngăn xếp có thể xảy ra trong quá trình biên dịch OpenCL™ nếu vòng lặp chứa ghi vào kênh được lập chỉ mục và số vòng lặp vượt quá số kênh được phân bổ. Xem mã ví dụ bên dưới.

    Kênh ký tự không dấu my_channel[16] __attribute__((độ sâu(1024)));
    dữ liệu char[32];

    ...
    for (ký tự không dấu i = 0; i < 32; i ) {
    write_channel_intel(my_channel[i], dữ liệu[i]);

    }

    Độ phân giải

    Đảm bảo rằng số vòng lặp không bao giờ vượt quá số kênh được phân bổ.

    #define num_channels 32

    Kênh ký tự không dấu my_channel[num_channels] __attribute__((độ sâu(1024)));
    dữ liệu char[num_channels];

    ...
    for (ký tự không dấu i = 0; i < num_channels; i ) {
    write_channel_intel(my_channel[i], dữ liệu[i]);

    }

    Sự cố này được khắc phục bắt đầu với phiên bản 19.1 của Intel® FPGA SDK cho trình biên dịch OpenCL™.

    Các sản phẩm liên quan

    Bài viết này áp dụng cho 1 sản phẩm

    Thiết bị có thể lập trình Intel®

    Nội dung gốc bằng tiếng Anh trên trang này vừa do con người vừa do máy dịch. Nội dung này chỉ để cung cấp thông tin chung và giúp quý vị thuận tiện. Quý vị không nên tin đây là thông tin hoàn chỉnh hoặc chính xác. Nếu có bất kỳ mâu thuẫn nào giữa bản tiếng Anh và bản dịch của trang này, thì bản tiếng Anh sẽ chi phối và kiểm soát. Xem phiên bản tiếng Anh của trang này.