Tôi quan tâm đến việc tối ưu hóa luồng dữ liệu và biểu đồ luồng điều khiển và đặc biệt phức tạp hơn về mặt tính toán. Nhưng cũng sẽ rất thú vị khi biết về những phát minh mới nhất trong lĩnh vực tối ưu hóa lổ nhìn trộm.
Tôi quan tâm đến việc tối ưu hóa luồng dữ liệu và biểu đồ luồng điều khiển và đặc biệt phức tạp hơn về mặt tính toán. Nhưng cũng sẽ rất thú vị khi biết về những phát minh mới nhất trong lĩnh vực tối ưu hóa lổ nhìn trộm.
Câu trả lời:
Tôi không chắc nó mới lạ như thế nào, hoặc nếu nó quá quan tâm đến lợi ích của bạn, nhưng Hoopl cho thấy cách tối ưu hóa luồng điều khiển / dữ liệu có thể được mô đun hóa, với việc truyền bá sự thật về các đỉnh đồ thị điều khiển độc lập với ngôn ngữ và tối ưu hóa cụ thể.
Họ tham khảo một thuật toán năm 2002 của Lerner, Grove và Chambers kết hợp các tối ưu hóa đơn giản thành một "siêu tối ưu hóa".
Tôi cho rằng kỹ thuật Saturation Saturation , như một cách tiếp cận khác nhau cho vấn đề tối ưu hóa vượt qua thứ tự, sẽ có liên quan. Theo hiểu biết của tôi, tuy nhiên nó vẫn chưa được chứng minh thực tế bằng cách triển khai cụ thể trong một trình biên dịch chính thức. Việc tạo Tối ưu hóa trình biên dịch sau đây từ Bằng chứng cũng có thể được quan tâm.
Đã có một chút hồi sinh trong trình biên dịch tối ưu hóa được xác minh. Ngoài bài viết của Lerner (được đề cập trong một bình luận trước đó), bạn có thể xem dự án CompCert do Xavier Leroy dẫn đầu. Họ đã thực hiện một số nội dung thú vị với việc chỉ định tối ưu hóa là bằng chứng có thể kiểm tra bằng máy (sử dụng Coq ). Tôi chưa đọc các bài báo, nhưng dự án Công cụ phần mềm được xác minh tại Princeton dường như cũng tạo ra kết quả thú vị trong lĩnh vực này.
Nhận ra rằng baz [i] + = force (foo [i], foo [j]) trong một vòng lặp FOR kép có kết quả độc lập cho (i, j) và sắp xếp lại các cuộc gọi vào một đường cong điền vào không gian trên (i, j) để cắt giảm bộ nhớ cache.
Không hoàn toàn "lén lút" nhưng nhận được hành vi lãng quên bộ nhớ cache cho "miễn phí" là tốt.