Nếu nhân OpenCL của bạn biên dịch thành công trong phiên bản 18.1.2 trở lên nhưng không thành công trong phiên bản 19.1 trở lên, hãy tìm thông báo tương tự như sau.
#aoc: Kiểm tra xem mức sử dụng bộ nhớ có lớn hơn 100% không...
#aoc: Cảnh báo sử dụng RAM là 173%!
Nếu thông báo được hiển thị, quá trình biên dịch sẽ thất bại vì mức sử dụng M20K vượt quá 100%.
Trong các phiên bản trước của SDK Intel® FPGA cho OpenCL,™ trình biên dịch sẽ tự động vô hiệu hóa việc sao chép bộ nhớ cục bộ cho tất cả các hệ thống bộ nhớ nếu ước tính mức sử dụng M20K trên 100%. Bắt đầu từ phiên bản 19.1, trình biên dịch không còn tự động vô hiệu hóa sao chép bộ nhớ cục bộ.
Sử dụng các thuộc tính bộ nhớ để kiểm soát việc sao chép bộ nhớ trên chip, như được hiển thị trong ví dụ ở đây.
int __attribute__((bộ nhớ, numbanks(1), singlepump, max_replicates(3))) lmem[1028];
Để biết thêm thông tin, hãy xem phần sau của Intel FPGA SDK for OpenCL Pro Edition: Best Practices Guide.
Tối ưu hóa quyền truy cập vào bộ nhớ cục bộ bằng cách kiểm soát hệ số sao chép bộ nhớ