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

Tại sao biên dịch hạt nhân OpenCL của tôi không thể tạo ra phần cứng mặc dù tài nguyên ước tính thấp?

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ả

    Nếu nhân OpenCL của™ bạn không thể tạo ra phần cứng mặc dù tài nguyên ước tính thấp, lỗi có thể là do mở các vòng lặp truy cập bộ nhớ toàn cầu quá mức.

    Không nên mở rộng các vòng lặp truy cập bộ nhớ toàn cầu ở những nơi mà giao diện bộ nhớ trong BSP có thể đọc hoặc ghi rộng hơn giao diện bộ nhớ.  Điều này sẽ gây ra sự cạnh nhau, tắc nghẽn định tuyến và có thể dẫn đến hỏng hóc quá trình biên dịch.

    Độ phân giải

    Có thể tìm thấy độ rộng của giao diện bộ nhớ ngoài trong tệp board_spec.xml trong OpenCL™ BSP.  Dưới đây là một ví dụ từ board_spec.xml của bộ phát triển Arria 10 GX BSP. (a10_ref)

    width="512" maxburst="16" address="0x00000000" size="0x80000000" latency="240"/>


    Như bạn có thể thấy, độ rộng giao diện bộ nhớ ngoài trên BSP này là 512 bit. (width="512") (chiều rộng="512") Do đó, nếu một vòng lặp truy cập vào số nguyên 32 bit toàn cầu, vòng lặp không nên được bỏ dở hơn 16. (512 / 32 = 16)

    Nếu số vòng lặp ban đầu không phải là bội số của 16:

    1. Làm tròn số vòng lặp mới thành bội số của 16.

    2. Tạo bất kỳ bộ nhớ trên chip nào trong vòng lặp đủ lớn để phù hợp với số lượng vòng lặp mới

    3. Sử dụng các điều kiện để ngăn đọc hoặc ghi khi số lượng vòng lặp mới vượt quá số vòng lặp ban đầu

    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.