2011-06-19 31 views
6

Tôi đang làm việc trong tối ưu hóa thuật toán sử dụng các chỉ lệnh SSE2. Nhưng tôi đã chạy vào vấn đề này khi tôi đã được thử nghiệm hiệu suất:Chương trình SSE mất nhiều thời gian hơn trên AMD so với Intel

I) Intel E6750

  1. Làm 4 lần so với thuật toán phi SSE2 mất 14,85 giây
  2. Làm 1 lần thuật toán SSE2 (quá trình cùng một dữ liệu) mất 6.89 giây

II) Phenom II x4 2.8GHz

  1. Làm 4 lần so với thuật toán phi SSE2 mất 11,43 giây
  2. Làm 1 lần thuật toán SSE2 (xử lý dữ liệu giống nhau) mất 12,15 giây

Bất cứ ai có thể giúp tôi tại sao điều này đang xảy ra? Tôi thực sự bối rối về kết quả.

Trong cả hai trường hợp, tôi đang biên soạn bằng g ++ sử dụng -O3 làm cờ.

PS: Thuật toán không sử dụng phép toán dấu chấm động, nó sử dụng các chỉ lệnh số nguyên SSE.

+0

Gần gấp đôi so với cùng một tệp nhị phân và trên CPU có tốc độ cao hơn và (giả sử "Deneb") có cùng kích thước bộ nhớ cache? Rất tiếc. Điều duy nhất tôi có thể nghĩ đến là nếu bạn làm rất nhiều sự xáo trộn, vì chúng có độ trễ gấp 3 lần so với thế hệ vi xử lý AMD này so với thế hệ CPU Intel (trông khác với thế hệ mới nhất). Hướng dẫn khác chắc chắn có thể có một chu kỳ nhiều hơn hoặc ít hơn ở đây và ở đó, nhưng tất cả trong tất cả nó không nên chạy 2x chậm hơn. (Bộ vi xử lý AMD cũng được biết đến với "chậm trễ định dạng", nhưng vì bạn không trộn phao/int, điều đó không quan trọng.) – Damon

+0

Sự khác biệt hơn 20% âm thanh lạ. Phiên bản AMD Phenom là gì? Kích thước Cache L1/L2/L3? Triển khai thuật toán là gì? – alecco

Trả lời

3

Intel đã thực hiện những cải tiến lớn đối với việc triển khai SSE của họ trong 5 năm qua, mà AMD chưa thực sự theo kịp. Ban đầu, cả hai thực sự chỉ là các đơn vị thực thi 64 bit và các hoạt động 128 bit được chia nhỏ thành 2 vi lệnh. Kể từ khi Core và Core 2 được giới thiệu mặc dù, CPU Intel đã có đầy đủ 128 bit SSE thực hiện, có nghĩa là 128 bit hoạt động hiệu quả có tăng thông lượng 2x (1 micro op so với 2). Các CPU Intel gần đây cũng có nhiều đơn vị thực hiện SSE có nghĩa là bạn có thể nhận được> 1 lệnh cho mỗi thông lượng đồng hồ cho 128 bit hướng dẫn SIMD.

+0

Wow. Không bao giờ nghĩ rằng điều này là rất khác nhau khi tôi mua CPU năm ngoái = (ngay bây giờ tôi đang nhận được vào HPC và bây giờ tôi có thể hiểu được sự khác biệt tiền .. –

+0

Nếu bạn đang sử dụng SSE thì Intel thực sự là trò chơi duy nhất trong thị trấn, cho Đối với mã không phải SIMD, có thể không có sự khác biệt lớn như vậy, và CPU của Intel khá đắt tiền, do đó, mỗi bang có một số lượng lớn. –

Các vấn đề liên quan