Công nghệ HyperThreading của Intel
Trang 1 trong tổng số 1 trang
Công nghệ HyperThreading của Intel
Hẳn các bạn có từng nghe cái tên HyperThreading (siêu phân luồng) khi đi mua PC thời Pentimum 4 và ngay cả bây giờ cũng vậy . Bài viết dưới đây sẽ cho cho các bạn biết Hyperthreading là gì và nó ảnh hưởng gì đến hiệu năng của CPU .
HyperThreading (HT) là khái niệm được Intel giới thiệu trong thời kỳ giữa của Pentium 4. Công nghệ này ngay khi được giới thiệu trên thị trường đã đạt được những thành công vang dội về khía cạnh… marketing. Chúng tôi không hề nói đùa! Công nghệ HyperThreading áp dụng trong Pentium 4 đã làm rất nhiều người dùng thỏa mãn với 2 biểu đồ hoạt động của CPU hiện lên trong cửa sổ Task Manager. Trong khi với các thử nghiệm thực tế, đôi khi bật tính năng này lên còn làm cho CPU xử lý kém hiệu quả hơn trong một vài công việc. Tất nhiên, HT cũng làm cho một vài ứng dụng nhanh hơn nếu ứng dụng đó yêu cầu CPU làm việc theo cái cách mà HT có thể phát huy khả năng của mình. Thành thực mà nói là như vậy, nhưng nhìn chung, việc hy vọng vào HT để tăng tốc độ xử lý của CPU phần nhiều là… hên xui. Và như vậy HyperThreading đã nói lời chia tay với người dùng khi Core ra đời. Lý do gây ra hiệu quả nghèo nàn này của HyperThreading không phải nằm ở bản chất của HyperThreading, mà là nằm ở kiến trúc của Pentium 4, không phù hợp cho Hyper Threading trổ tài.
HyperThreading là gì?
Về bản chất, một nhân xử lý không thể xử lý hai luồng thông tin vào cùng một thời điểm. Nếu chúng ta muốn cùng một lúc có được nhiều ứng dụng (hay thực chất là rất nhiều các process con, hoặc rất nhiều thread) chạy song song, hệ điều hành của chúng ta phải ra lệnh cho nhân xử lý liên tục và chuyển qua chuyển lại tác vụ xử lý cho từng thread. Quá trình này diễn ra rất-rất nhanh và hoàn toàn không thể nhận biết bằng mắt thường, tạo cảm giác như CPU của chúng ta xử lý tất cả các khối lượng công việc đó song song cùng một thời điểm.
Minh họa cho cách SMT (Hyper Threading) làm tăng hiệu quả xử lý của CPU
HyperThreading là tên của Intel đặt cho công nghệ SMT (Simultaneous Multi-Threading). Công nghệ này cho phép một nhân xử lý có thể thực sự xử lý song song các thread do các ứng dụng tạo ra, bằng cách trang bị thêm một số thành phần của nhân xử lý, khiến hệ điều hành nghĩ rằng nó đang làm việc với nhiều nhân xử lý. Như vậy, với một hệ điều hành tương thích bộ xử lý nhiều nhân hay nhiều bộ xử lý, nó sẽ sắp xếp để nhiều thread cùng được gửi đến các bộ xử lý “ảo” đó. Về mặt lý thuyết, khi chúng ta chỉ có một nhân xử lý thì nó có xử lý song song được bao nhiêu thread cũng không thể tăng tốc độ xử lý chúng lên được. Tuy nhiên trong thực tế, không phải bất kỳ lúc nào mọi thành phần của nhân xử lý cũng được sử dụng đến, và những thành phần không được sử dụng đến này có thể dùng để xử lý thread thứ hai (hoặc thứ ba, thứ tư…). Công nghệ SMT còn giúp bộ xử lý làm việc hiệu quả hơn bằng cách giảm bớt số lần nhân xử lý phải chuyển qua chuyển lại giữa các thread ‘’song song”. Quá trình chuyển này, như đã nói ở trên, diễn ra rất nhanh và liên tục, nhưng không có nghĩa là không mất thời gian, và bằng việc giảm bớt lượng công việc này, bộ xử lý có thể được rảnh rang để tập trung vào chuyên môn hơn.
Nehalem và HyperThreading
Quay trở lại một vài trang trước của bài viết này, chúng tôi có nhấn mạnh rằng Intel đã không chú trọng nhiều vào việc tăng tốc độ xử lý của nhóm các đơn vị thực thi mà chú trọng vào việc nâng cao hiệu suất của chúng. Và đây chính là điểm mấu chốt của việc họ ứng dụng công nghệ HyperThreading vào Nehalem. Kiến trúc của Nehalem, giống như Core rất thân thiện với việc áp dụng HyperThreading (hay SMT), với mục đích nâng cao hiệu suất xử lý hơn là tốc độ xử lý, các thread xử lý song song được ghép chung với nhau một cách tối ưu hơn, tận dụng tốt hơn những thành phần rảnh rỗi của nhân xử lý. Kết hợp điều này với băng thông cực lớn của bus giao tiếp với bộ nhớ (sẽ được nói sâu hơn ở phần sau bài viết) và bộ nhớ cache lớn hơn nhiều lần so với Pentium 4, nhân xử lý của Nehalem luôn luôn được nhồi đủ dữ liệu để yên tâm làm việc của mình.
Biểu đồ cung cấp bởi Intel về sự gia tăng trong tốc độ xử lý các tác vụ khác nhau. Kết quả được kiểm nghiệm bởi vozLabs vui lòng xem thêm phía dưới.
Để hiểu thêm về cách Intel đã ứng dụng SMT vào Nehalem, ngoài khả năng diễn đạt của chúng tôi bằng tiếng Việt về vấn đề này thực sự gặp khó khăn thì chúng tôi cũng e rằng kiến thức của mình không đủ để diễn đạt đúng bản chất của vấn đề. Do vậy rất mong bạn đọc thông cảm. Các bạn có thể tham khảo thêm một số tài liệu rất hữu ích tại Tom’s Hardware, Be Hardware và Anandtech.
Kết quả thử nghiệm của chúng tôi
Trong một khoảng thời gian ngắn ngủi có được, nhóm thử nghiệm sản phẩm đã thử kiểm nghiệm hiệu quả của việc ứng dụng SMT với Nehalem, và có lẽ tất cả các bạn đều đang rất nóng lòng chờ đợi những kết quả này. Sử dụng công cụ Geekbench 2.0, chúng tôi tiến hành thử nghiệm và thu thập các kết quả test Multi-threaded giữa hai chế độ bật và tắt HyperThreading.
Nhanh hơn trong hầu hết tất cả các thử nghiệm, duy chỉ có LU Decomposition là việc bật HT mang lại hiệu năng thấp hơn, HT thực sự như cá gặp nước với Nehalem.
Cần phải chú thích thêm một chút, trong thử nghiệm Crafty Chess, kết quả multi-threaded còn kém hơn so với kết quả single-threaded, và tình hình còn tệ hại hơn nữa khi HT được bật. Một dấu hiệu cho thấy thử nghiệm này đặc biệt ”ghét’ mọi hình thức chạy song song nhiều thread. Ngoài ra thì, nhìn vào biểu đồ, có lẽ không cần phải phân tích thêm gì nhiều, mọi thứ đều tuyệt vời! Đây chỉ là so sánh giữa hai chế độ HyperThreading bật và tắt, vậy HT có ảnh hưởng như thế nào giữa hai chế độ single-threaded và multi-threaded?
Ngay cả khi HT không được bật, chênh lệch giữa single-threaded (chỉ sử dụng 1 core) với multi-threaded (sử dụng cả 4 core) vẫn thực sự ấn tượng, hầu hết các test đều cho kết quả nhanh hơn xấp xỉ 4 lần.
Hãy nhìn vào biểu đồ, ngoại trừ LU Decomposition có vấn đề với HT như các bạn có thể thấy ở biểu đồ trước và Crafty Chess qua biểu đồ thứ hai này, một lần nữa xác nhận rằng test này rất kỵ chạy multi-threaded. Ngoài ra thì sao? Chúng tôi chưa muốn nói tới khả năng tăng tốc giữa 1 nhân và 4 nhân của Nehalem tốt tới mức nào, hầu hết là ở khoảng xấp xỉ gần 4 lần, một vài trường hợp còn hơn, thì trong tất cả các test HT khi bật đều nâng mức tăng tốc lên rất nhiều, một vài test gần đạt tới con số 7.
HyperThreading (HT) là khái niệm được Intel giới thiệu trong thời kỳ giữa của Pentium 4. Công nghệ này ngay khi được giới thiệu trên thị trường đã đạt được những thành công vang dội về khía cạnh… marketing. Chúng tôi không hề nói đùa! Công nghệ HyperThreading áp dụng trong Pentium 4 đã làm rất nhiều người dùng thỏa mãn với 2 biểu đồ hoạt động của CPU hiện lên trong cửa sổ Task Manager. Trong khi với các thử nghiệm thực tế, đôi khi bật tính năng này lên còn làm cho CPU xử lý kém hiệu quả hơn trong một vài công việc. Tất nhiên, HT cũng làm cho một vài ứng dụng nhanh hơn nếu ứng dụng đó yêu cầu CPU làm việc theo cái cách mà HT có thể phát huy khả năng của mình. Thành thực mà nói là như vậy, nhưng nhìn chung, việc hy vọng vào HT để tăng tốc độ xử lý của CPU phần nhiều là… hên xui. Và như vậy HyperThreading đã nói lời chia tay với người dùng khi Core ra đời. Lý do gây ra hiệu quả nghèo nàn này của HyperThreading không phải nằm ở bản chất của HyperThreading, mà là nằm ở kiến trúc của Pentium 4, không phù hợp cho Hyper Threading trổ tài.
HyperThreading là gì?
Về bản chất, một nhân xử lý không thể xử lý hai luồng thông tin vào cùng một thời điểm. Nếu chúng ta muốn cùng một lúc có được nhiều ứng dụng (hay thực chất là rất nhiều các process con, hoặc rất nhiều thread) chạy song song, hệ điều hành của chúng ta phải ra lệnh cho nhân xử lý liên tục và chuyển qua chuyển lại tác vụ xử lý cho từng thread. Quá trình này diễn ra rất-rất nhanh và hoàn toàn không thể nhận biết bằng mắt thường, tạo cảm giác như CPU của chúng ta xử lý tất cả các khối lượng công việc đó song song cùng một thời điểm.
Minh họa cho cách SMT (Hyper Threading) làm tăng hiệu quả xử lý của CPU
HyperThreading là tên của Intel đặt cho công nghệ SMT (Simultaneous Multi-Threading). Công nghệ này cho phép một nhân xử lý có thể thực sự xử lý song song các thread do các ứng dụng tạo ra, bằng cách trang bị thêm một số thành phần của nhân xử lý, khiến hệ điều hành nghĩ rằng nó đang làm việc với nhiều nhân xử lý. Như vậy, với một hệ điều hành tương thích bộ xử lý nhiều nhân hay nhiều bộ xử lý, nó sẽ sắp xếp để nhiều thread cùng được gửi đến các bộ xử lý “ảo” đó. Về mặt lý thuyết, khi chúng ta chỉ có một nhân xử lý thì nó có xử lý song song được bao nhiêu thread cũng không thể tăng tốc độ xử lý chúng lên được. Tuy nhiên trong thực tế, không phải bất kỳ lúc nào mọi thành phần của nhân xử lý cũng được sử dụng đến, và những thành phần không được sử dụng đến này có thể dùng để xử lý thread thứ hai (hoặc thứ ba, thứ tư…). Công nghệ SMT còn giúp bộ xử lý làm việc hiệu quả hơn bằng cách giảm bớt số lần nhân xử lý phải chuyển qua chuyển lại giữa các thread ‘’song song”. Quá trình chuyển này, như đã nói ở trên, diễn ra rất nhanh và liên tục, nhưng không có nghĩa là không mất thời gian, và bằng việc giảm bớt lượng công việc này, bộ xử lý có thể được rảnh rang để tập trung vào chuyên môn hơn.
Nehalem và HyperThreading
Quay trở lại một vài trang trước của bài viết này, chúng tôi có nhấn mạnh rằng Intel đã không chú trọng nhiều vào việc tăng tốc độ xử lý của nhóm các đơn vị thực thi mà chú trọng vào việc nâng cao hiệu suất của chúng. Và đây chính là điểm mấu chốt của việc họ ứng dụng công nghệ HyperThreading vào Nehalem. Kiến trúc của Nehalem, giống như Core rất thân thiện với việc áp dụng HyperThreading (hay SMT), với mục đích nâng cao hiệu suất xử lý hơn là tốc độ xử lý, các thread xử lý song song được ghép chung với nhau một cách tối ưu hơn, tận dụng tốt hơn những thành phần rảnh rỗi của nhân xử lý. Kết hợp điều này với băng thông cực lớn của bus giao tiếp với bộ nhớ (sẽ được nói sâu hơn ở phần sau bài viết) và bộ nhớ cache lớn hơn nhiều lần so với Pentium 4, nhân xử lý của Nehalem luôn luôn được nhồi đủ dữ liệu để yên tâm làm việc của mình.
Biểu đồ cung cấp bởi Intel về sự gia tăng trong tốc độ xử lý các tác vụ khác nhau. Kết quả được kiểm nghiệm bởi vozLabs vui lòng xem thêm phía dưới.
Để hiểu thêm về cách Intel đã ứng dụng SMT vào Nehalem, ngoài khả năng diễn đạt của chúng tôi bằng tiếng Việt về vấn đề này thực sự gặp khó khăn thì chúng tôi cũng e rằng kiến thức của mình không đủ để diễn đạt đúng bản chất của vấn đề. Do vậy rất mong bạn đọc thông cảm. Các bạn có thể tham khảo thêm một số tài liệu rất hữu ích tại Tom’s Hardware, Be Hardware và Anandtech.
Kết quả thử nghiệm của chúng tôi
Trong một khoảng thời gian ngắn ngủi có được, nhóm thử nghiệm sản phẩm đã thử kiểm nghiệm hiệu quả của việc ứng dụng SMT với Nehalem, và có lẽ tất cả các bạn đều đang rất nóng lòng chờ đợi những kết quả này. Sử dụng công cụ Geekbench 2.0, chúng tôi tiến hành thử nghiệm và thu thập các kết quả test Multi-threaded giữa hai chế độ bật và tắt HyperThreading.
Nhanh hơn trong hầu hết tất cả các thử nghiệm, duy chỉ có LU Decomposition là việc bật HT mang lại hiệu năng thấp hơn, HT thực sự như cá gặp nước với Nehalem.
Cần phải chú thích thêm một chút, trong thử nghiệm Crafty Chess, kết quả multi-threaded còn kém hơn so với kết quả single-threaded, và tình hình còn tệ hại hơn nữa khi HT được bật. Một dấu hiệu cho thấy thử nghiệm này đặc biệt ”ghét’ mọi hình thức chạy song song nhiều thread. Ngoài ra thì, nhìn vào biểu đồ, có lẽ không cần phải phân tích thêm gì nhiều, mọi thứ đều tuyệt vời! Đây chỉ là so sánh giữa hai chế độ HyperThreading bật và tắt, vậy HT có ảnh hưởng như thế nào giữa hai chế độ single-threaded và multi-threaded?
Ngay cả khi HT không được bật, chênh lệch giữa single-threaded (chỉ sử dụng 1 core) với multi-threaded (sử dụng cả 4 core) vẫn thực sự ấn tượng, hầu hết các test đều cho kết quả nhanh hơn xấp xỉ 4 lần.
Hãy nhìn vào biểu đồ, ngoại trừ LU Decomposition có vấn đề với HT như các bạn có thể thấy ở biểu đồ trước và Crafty Chess qua biểu đồ thứ hai này, một lần nữa xác nhận rằng test này rất kỵ chạy multi-threaded. Ngoài ra thì sao? Chúng tôi chưa muốn nói tới khả năng tăng tốc giữa 1 nhân và 4 nhân của Nehalem tốt tới mức nào, hầu hết là ở khoảng xấp xỉ gần 4 lần, một vài trường hợp còn hơn, thì trong tất cả các test HT khi bật đều nâng mức tăng tốc lên rất nhiều, một vài test gần đạt tới con số 7.
Similar topics
» Thảo luận Bài 5 (Đa luồng)
» công nghệ TurboBoost và HyperThreading
» Thảo luận Bài 5
» Thảo luận Bài 5
» Thảo luận Bài 5
» công nghệ TurboBoost và HyperThreading
» Thảo luận Bài 5
» Thảo luận Bài 5
» Thảo luận Bài 5
Trang 1 trong tổng số 1 trang
Permissions in this forum:
Bạn không có quyền trả lời bài viết