thảo luận ARM muốn đánh bại cả Intel và AMD, bằng CPU có tới 192 lõi xử lý

Nó không đơn giản chỉ là core, tệp lệnh của ARM nó đơn giản hơn x86 nhiều, ngoài ra còn xung nhịp nữa.
Cũng vì tập lệnh đơn giản mà ARM chỉ tiết kiệm điện, chứ về tốc độ thì khó vượt qua dòng x86 lắm. Có chăng là vượt qua dòng x86 tiết kiệm điện thôi. Nhồi nhét nhiều core cũng không phải là giải pháp hay vì nhiều thuật toán cần phải xử lý tuần tự và không thể bắt nó chạy song song.
 
Cũng vì tập lệnh đơn giản mà ARM chỉ tiết kiệm điện, chứ về tốc độ thì khó vượt qua dòng x86 lắm. Có chăng là vượt qua dòng x86 tiết kiệm điện thôi. Nhồi nhét nhiều core cũng không phải là giải pháp hay vì nhiều thuật toán cần phải xử lý tuần tự và không thể bắt nó chạy song song.
ARM thực hiện các lệnh phức tạp thì sao bằng bọn x86 được, cơ mà giờ có vẻ người ta không thích phức tạp hoá các thuật toán nữa rồi, thích đơn giản hoá và tăng số lượng nhân lên để thực hiện song song.
 
ARM thực hiện các lệnh phức tạp thì sao bằng bọn x86 được, cơ mà giờ có vẻ người ta không thích phức tạp hoá các thuật toán nữa rồi, thích đơn giản hoá và tăng số lượng nhân lên để thực hiện song song.
Thuật toán xử lý ảnh, kết xuất video có thể thực hiện song song vì có nhiều khối dữ liệu độc lập nhau. Nhưng để nó chạy song song với hiệu suất cao thì không đơn giản, và không phải lúc nào cũng xử lý song song được. Rất nhiều các cơ sở dữ liệu nó rất lớn, gồm hàng tỉ các biến mảng phụ thuộc nhau hoàn toàn. Việc thay đổi giá trị biến này sẽ ảnh hưởng đến biến khác theo nguyên tắc tuần tự.
Ví dụ đơn giản nhất là việc mã hóa dữ liệu. Nếu việc mã hóa có thể giải mã song song tốc độ cao thì đó là thảm họa bảo mật. Bởi vậy người ta mới phải phức tạp hóa các thuật toán để đảm bảo thời gian giải mã đủ lâu để làm nản lòng bất kỳ tay hacker nào.
Hay như vấn đề duyệt web, trình duyệt có thể chia các khối dữ liệu vào nhiều core của CPU, nhưng đáng tiếc là các khối dữ liệu đó không đồng nhất với nhau, thời gian xử lý khác nhau, và có nhiều biến mảng phụ thuộc nhau, bắt buộc nhân xử lý này phải ngồi chơi đợi nhân xử lý bên kia hoàn thành mới tiếp tục được. Lập trình cho nó chạy song song mà thực ra nó không song song được.
Bởi vậy mới nói nhét nhiều core đôi khi không phải là giải pháp hay. Nếu dùng cho máy chủ thì OK, chứ mà để xử lý dữ liệu thì phải xem đó là loại dữ liệu gì, có xử lý song song được không, ấy mới là vấn đề.
 
Thuật toán xử lý ảnh, kết xuất video có thể thực hiện song song vì có nhiều khối dữ liệu độc lập nhau. Nhưng để nó chạy song song với hiệu suất cao thì không đơn giản, và không phải lúc nào cũng xử lý song song được. Rất nhiều các cơ sở dữ liệu nó rất lớn, gồm hàng tỉ các biến mảng phụ thuộc nhau hoàn toàn. Việc thay đổi giá trị biến này sẽ ảnh hưởng đến biến khác theo nguyên tắc tuần tự.
Ví dụ đơn giản nhất là việc mã hóa dữ liệu. Nếu việc mã hóa có thể giải mã song song tốc độ cao thì đó là thảm họa bảo mật. Bởi vậy người ta mới phải phức tạp hóa các thuật toán để đảm bảo thời gian giải mã đủ lâu để làm nản lòng bất kỳ tay hacker nào.
Hay như vấn đề duyệt web, trình duyệt có thể chia các khối dữ liệu vào nhiều core của CPU, nhưng đáng tiếc là các khối dữ liệu đó không đồng nhất với nhau, thời gian xử lý khác nhau, và có nhiều biến mảng phụ thuộc nhau, bắt buộc nhân xử lý này phải ngồi chơi đợi nhân xử lý bên kia hoàn thành mới tiếp tục được. Lập trình cho nó chạy song song mà thực ra nó không song song được.
Bởi vậy mới nói nhét nhiều core đôi khi không phải là giải pháp hay. Nếu dùng cho máy chủ thì OK, chứ mà để xử lý dữ liệu thì phải xem đó là loại dữ liệu gì, có xử lý song song được không, ấy mới là vấn đề.
Thấy bây giờ nhiều core đang lên ngôi mà. Cách lập trình cũng khác thời đơn core. Nên có lẽ, theo cách nào đó, đa core hiện nay vẫn đang chứng minh mang lại hiệu quả. Tất nhiên là để hiệu quả cao hay thấp thì cũng tuỳ theo loại nhiệm vụ.
 
Thuật toán xử lý ảnh, kết xuất video có thể thực hiện song song vì có nhiều khối dữ liệu độc lập nhau. Nhưng để nó chạy song song với hiệu suất cao thì không đơn giản, và không phải lúc nào cũng xử lý song song được. Rất nhiều các cơ sở dữ liệu nó rất lớn, gồm hàng tỉ các biến mảng phụ thuộc nhau hoàn toàn. Việc thay đổi giá trị biến này sẽ ảnh hưởng đến biến khác theo nguyên tắc tuần tự.
Ví dụ đơn giản nhất là việc mã hóa dữ liệu. Nếu việc mã hóa có thể giải mã song song tốc độ cao thì đó là thảm họa bảo mật. Bởi vậy người ta mới phải phức tạp hóa các thuật toán để đảm bảo thời gian giải mã đủ lâu để làm nản lòng bất kỳ tay hacker nào.
Hay như vấn đề duyệt web, trình duyệt có thể chia các khối dữ liệu vào nhiều core của CPU, nhưng đáng tiếc là các khối dữ liệu đó không đồng nhất với nhau, thời gian xử lý khác nhau, và có nhiều biến mảng phụ thuộc nhau, bắt buộc nhân xử lý này phải ngồi chơi đợi nhân xử lý bên kia hoàn thành mới tiếp tục được. Lập trình cho nó chạy song song mà thực ra nó không song song được.
Bởi vậy mới nói nhét nhiều core đôi khi không phải là giải pháp hay. Nếu dùng cho máy chủ thì OK, chứ mà để xử lý dữ liệu thì phải xem đó là loại dữ liệu gì, có xử lý song song được không, ấy mới là vấn đề.
linh tinh, một máy tính chạy nhiều chương trình đã là xử lý song song rồi cần qué gì phần mềm đc viết song song.
Mã hoá bảo mật thì càng phải xử lý song song để người dùng ko phải đợi lâu, bảo mật mã hoá quan trọng nhất là mã key, làm sao để cho dù hacker có dùng phương pháp vét sạch key có thể cũng ko ăn thua. Chứ còn ngay cả có key xịn còn giải mã chậm thì nghỉ luôn đi. Thời gian là tiền bạc là sinh mệnh.
Còn website thì chạy javascript hay render đều là single thread, hầu hết các website trên thế giới đều làm kiểu cũ, server render ra html code, trình duyệt chỉ có đọc rồi view lại mà thôi. Rất ít website hay lập trình viên làm việc với web worker để web của mình xử lý song song đc. Nhét nhiều core hay là lập trình xử lý song song là xu thế tất yếu mà thôi.
 
linh tinh, một máy tính chạy nhiều chương trình đã là xử lý song song rồi cần qué gì phần mềm đc viết song song.
Mã hoá bảo mật thì càng phải xử lý song song để người dùng ko phải đợi lâu, bảo mật mã hoá quan trọng nhất là mã key, làm sao để cho dù hacker có dùng phương pháp vét sạch key có thể cũng ko ăn thua. Chứ còn ngay cả có key xịn còn giải mã chậm thì nghỉ luôn đi. Thời gian là tiền bạc là sinh mệnh.
Còn website thì chạy javascript hay render đều là single thread, hầu hết các website trên thế giới đều làm kiểu cũ, server render ra html code, trình duyệt chỉ có đọc rồi view lại mà thôi. Rất ít website hay lập trình viên làm việc với web worker để web của mình xử lý song song đc. Nhét nhiều core hay là lập trình xử lý song song là xu thế tất yếu mà thôi.
Chạy nhiều chương trình mà đâu phải chương trình nào cũng 100% CPU? Cái này chỉ đúng với server chứ với cái máy cá nhân, chẳng lẽ 1 lúc bạn chơi 2 cái game cùng lúc?
Mã hóa mà dễ giải mã thì cái key của bạn hacker nó đoán cái 1. Người làm thuật toán mã hóa luôn phải đảm bảo nó đủ chậm để không bị hack và đủ nhanh để người dùng cảm thấy thoải mái.
Khi duyệt web thì có khá nhiều tác vụ song song như mở nhiều tab, trong 1 tab cũng có nhiều đoạn mã độc lập có thể xử lý song song. Cái đó là câu chuyện của trình duyệt. Nhưng rất tiếc các tác vụ song song đó không phải cái nào cũng nặng như nhau. Còn từng tác vụ đơn lẻ thì không thể lập trình song song. Tất nhiên 1 người bình thường cũng không thể làm việc đồng thời trên quá nhiều tab nên số core xử lý cũng chỉ cần đến 8 core là đủ. 192 core thì đa phần các core còn lại ngồi chơi, nó chỉ hợp với server.
 
IBM từng có con chip 4096 nhân mà thấy im re chắc fail rồi, Manticore RISC-V 4096 nhân mới nghe hồi đầu năm, chưa biết có thương mại đc ko
 
Back
Top