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.
5 trang |
Chia sẻ: oanh_nt | Lượt xem: 1428 | Lượt tải: 0
Nội dung tài liệu Tìm hiểu HyperThreading, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
Tìm hiểu HyperThreading là gì ?
HyperThreading trở lại
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ạiTom’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.
Khá là tuyệt!
Các file đính kèm theo tài liệu này:
- phan_cung_13.PDF