HIỆU QUẢ CỦA VIỆC THỰC HIỆN VECTOR

Một phần của tài liệu TẠI SAO PHẢI DÙNG BỘ XỬ LÝ VECTOR pptx (Trang 39 - 41)

Hai phần tử sau ảnh hưởng sự thành công mà chương trình có thể chạy trong chế độ véctơ. Phần tử đầu tiên là cấu trúc của bản thân chương trình này : Làm vòng lặp có sự phụ thuộc dữ liệu đúng, hay chúng có thể được tổ chức lại để khỏi có sự phụ thuộc như vậy? Phần tử này chịu ảnh hưởng của thuật toán đã chọn và trong chừng mực nào đó, bằng cách chúng được mã hoá. Phần tử giây là khả năng của trình biên dịch. Trong khi không có trình biên dịch nào thực hiện vòng lặp nơi tính tương đương giữa lần lặp lại vòng lặp tồn tại, có phiên bản lớn trong khả năng của trình biên dịch để quyết định xem vòng lặp có thể thực hiện vector. Kỹ thuật được dùng để thực hiện chương trình để khám phá ILP; ở đây chúng tôi chỉ cần xem xét kỹ thuật này làm việc tốt như thế nào.

Như một dấu hiệu cho thấy mức của trình biên dịch vector có thể đạt được trong chương trình khoa học, chúng ta hãy nhìn mức trình biên dịch vector quan sát cho kiểm chuẩn. Kiểm chuẩn này là lớn, ứng dụng khoa học thực sự. Hình vẽ G.14 cho thấy phần trăm của thao tác thực hiện ở chế độ véctơ cho hai phiên bản mã chạy trên Cray Y - MP. Phiên bản đầu tiên là đạt được với chỉ số tối ưu hóa trình biên dịch trên mã gốc, trong khi phiên bản giây đã được trình bày rộng rãi - tối ưu hóa bằng nhóm của lập trình viên Nghiên cứu Cray. Phiên bản rộng trong mức của trình biên dịch vector trình biên dịch đã được theo dõi bằng studes vài của hiệu năng của ứng dụng vào bộ xử lý véctơ.

Tối ưu hóa phiên bản nói chung cho thấy tăng đáng kể mức trình biên dịch vector cho mã trình biên dịch không thể thực hiện tốt một mình, với tất cả mã trình biên dịch vector bây giờ trên 50% . Thật thú vị khi lưu ý rằng cho MG3D, FLO52, và DYFESM, mã được tạo ra nhanh bởi lập trình viên Cray có mức thấp của trình biên dịch vector. Mức của trình biên dịch vector không phải là đủ một mình để xác định hiệu năng. Kỹ thuật trình biên dịch vector khác có thể thực hiện ít

Hình vẽ G.14 Mức của trình biên dịch vector giữa kiểm chuẩn khi thực hiện trên Cray Y - MP [ Vajapeyam 1991 ]. Cột đầu tiên cho thấy

mức trình biên dịch vector đạt được với trình biên dịch, trong khi cột giây cho thấy kết quả đằng sau mã đã được tối ưu hóa bằng nhóm của lập trình viên Nghiên cứu Cray. Số Speedup không có sẵn cho FLO52 và DYFESM khi tối ưu hóa chạy sử dụng thiết lập dữ liệu lớn hơn trình biên dịch - tối ưu hóa chạy.

Hình vẽ G.15 Kết quả của áp dụng trình biên dịch vector đến 100 FORTRAN thử nghiệm phần lõi. Đối với mỗi bộ xử lý chúng tôi chứng tỏ

vecor, và không thực hiện vector. Vòng lặp này được thu thập bởi Callahan, Dongarra, và Levine [ 1988 ]. Hai trình biên dịch khác nhau cho Cray X-MP cho thấy lệ thuộc lớn vào công nghệ trình biên dịch lệnh, hoặc giữ nhiều giá trị hơn trong thanh ghi véctơ, hoặc cho phép lớn chuỗi và chồng lấp những thao tác véctơ, và do đó cải thiện hiệu năng dù là mức trình biên dịch vector vẫn vậy hoặc cho đì. Chẳng hạn như, BDNA có mức cùng gần như của trình biên dịch vector trong hai phiên bản, nhưng tối ưu hóa mã nhanh hơn 50% .

Cũng có phiên bản lớn hơn có trình biên dịch khác nhau làm trong thực hiện vector chương trình. Khi tóm tắt của trạng thái của thực hiện vector trình biên dịch, xem xét dữ liệu trong Hình vẽ G.15, cho thấy khối lưu trữ riêng của trình biên dịch vector cho bộ xử lý khác nhau sử dụng bộ phần mềm thử nghiệm của 100 viết tay FORTRAN phần lõi. Phần lõi được thiết kế để thử nghiệm khả năng trình biên dịch vector và có thể tất cả được thực hiện thủ công; chúng ta sẽ xem xét nhiều ví dụ về các vòng lặp trong các bài tập.

Một phần của tài liệu TẠI SAO PHẢI DÙNG BỘ XỬ LÝ VECTOR pptx (Trang 39 - 41)