Hàng khuyến mãi Hang khuyen mai hang thanh ly hàng thanh lý

Hãy chọn Truy cập bằng mobile | Tiếp tục
Từ khóa hot: Thời trang Đồng hồ Thẩm mỹ Xây dựng Chăm sóc sức khỏe   |  
Tìm nâng cao

Fermi là gì? Giới thiệu sơ lược về kiến trúc Fermi của NVIDIA [Copy địa chỉ]

Thời gian đăng: 16/11/2018 16:33:34

Thế hệ tiếp theo CUDA kiến trúc, có tên là "Fermi", là kiến trúc tính toán GPU tiên tiến nhất từng được chế tạo. Với hơn ba tỷ bóng bán dẫn và tính năng lên đến 512 lõi CUDA, Fermi cung cấp các tính năng và hiệu suất siêu máy tính với chi phí chỉ bằng 1/10 và năng lượng bằng 1/20 so với CPU truyền thống.

Thế hệ tiếp theo CUDA kiến trúc, có tên là "Fermi", là kiến trúc tính toán GPU tiên tiến nhất từng được chế tạo. Với hơn ba tỷ bóng bán dẫn và tính năng lên đến 512 lõi CUDA, Fermi cung cấp các tính năng và hiệu suất siêu máy tính với chi phí  chỉ bằng 1/10 và năng lượng bằng 1/20 so với CPU truyền thống. Kiến trúc Fermi đầu tiên dựa trên nền tảng GPU, được bổ sung 3 triệu transistor và có đến 512 nhân CUDA. Một nhân CUDA thực thi 1 chỉ thị dấu chấm động hoặc số nguyên trên 1 clock cho 1 thread. 512 nhân CUDA được tổ chức vào 16 SM với mỗi SM chứa 32 nhân. GPU có 6 phân vùng bộ nhớ 64-bit, for a 384-bit memory interface, hỗ trợ lên đến tổng cộng 6 GB bộ nhớ GDDR5 DRAM. Một host interface kết nối GPU đến CPU thông qua cổng PCI-Express. Bộ lập lịch trình toàn cục Giga Thread phân phối các khối thread đến các bộ lập lịch trình của riêng từng SM.

Kiến trúc Fermi được đại diện bởi ba hệ thống sản phẩm: Quadro (card dùng cho các tác vụ đồ họa chuyên nghiệp), Tesla (card sử dụng trong môi trường siêu điện toán) và GeForce (card chuyên dùng cho game).

>>> Xem thêm: dell r740

Third Generation Streaming Multiprocessor:
Thế hệ SM thứ 3 giới thiệu nhiều kiến trúc mang tính đột phá khiến nó không chỉ là SM mạnh mẽ nhất từng được xây dựng, về cả khả năng lập trình và tính hiệu quả.
512 nhân CUDA hiệu suất cao: Mỗi SM có 32 bộ xử lý CUDA – một sự cải thiện gấp 4 lần so với các thiết kế SM trước đây. Mỗi bộ xử lý CUDA có đầy đủ các pipeline đơn vị luận lý toán học số nguyên(ALU) và đơn vị dấu chấm động (FPU). Các GPU trước đây sử dụng các bộ số học dấu chấm động IEE 754-1985. Kiến trúc Fermi bổ sung chuẩn floating-point mới là IEEE 754-2008, cung cấp chỉ thị fused multiply-add (FMA) cho cả các phép tính chính xác đơn và chính xác kép. FMA được cải thiện hơn chỉ thị multiply-add (MAD)  bằng cách thực hiện các phép nhân và phép cộng chỉ với 1 bước final rounding đơn, không mất sự chính xác trong phép cộng. FMA chính xác hơn thực hiện các tính toán riêng rẽ. GT200 đã bổ sung bộ FMA chính xác kép.
Xét từ nhiều góc độ thì SM ( Streaming Multiprocessors ) chính là trái tim của Fermi. SM có khả năng lấy những câu lệnh, vì thế chúng là những “nhân xử lý” thực sự của GPU. Fermi có tất cả 16 SM, và chúng có khả năng xử lý song song nội bộ mạnh hơn những lõi của CPU.
Các nhóm tuyến ( Thread Group ) được xử lý song song bởi đơn vị thực thi GPU là thành phần quan trọng trong GPU. NVIDIA vẫn giữ độ rộng 32-Thread trong Fermi, nhưng giờ đây một SM có hai bộ lập trình ( Scheduler ) nhóm tuyến và những bộ phận  gửi câu lệnh ( Dispatch ) .
Vậy là SM có tổng cộng 4 đơn vị thực thi chính. 2 trong số đó là các nhóm thành hai cặp 16 “lõi CUDA” vô hướng , theo ngôn ngữ của NVIDIA, và được gọi là “lõi – Core” trong biểu đồ khối. Ngoài ra còn có 16 Bộ phận tải/lưu trữ ( Load/Store Unit – LSU ) và 04 nhóm các đơn vị chức năng đặc biệt ( Special Func Unit – SFU ) . Các SFU xử lý các dạng toán đặc biệt , với số lượng tăng gấp đôi so với GT200 vốn chỉ có 2 SFU trên một SM.
Hai khối Scheduler / Dispatch đều nối trực tiếp tới những 04 bộ phận thực thi ( những Core ) vì thế mà mỗi Scheduler / Dispatch có thể gửi một Thread Group tới bất kỳ đơn vị nào trong số 4 đơn vị thực thi trong một chu kỳ xung nhịp. Điều này khiến Fermi trở thành một thiết kế xử lí kép  thực sự chứ không như GT200 là mô phỏng xử lí kép. Trường hợp ngoại lệ duy nhất là khi dùng phép tính đòi hỏi có độ chính xác gấp đôi ( Double-Precision ) .
Khả năng chia sẻ dữ liệu địa phương trong SM của Fermi cũng lớn hơn, 64KB so với 16KB của GT200. Đây cũng là một hướng đi khá thông minh.
Fermi vẫn giữ lại mô hình tính toán kiểu SIMT (Single instruction – Multiple thread). Mỗi tuyến trong Thread Group sẽ thực thi liên tiếp trên “nhân  CUDA,” trong khi 15 tuyến còn lại cũng xử lý tương tự như vậy và song song với nhau .
Với đồ họa, mỗi pixel được coi như một tuyến, và thành phần màu pixel được xử lý lần lượt như sau: đỏ, xanh lá, xanh và alpha. Do mỗi Thread Group gồm 32 tuyến nên hoạt động của chúng mất tối thiểu 2 chu kỳ xung nhịp trong Fermi.
Như vậy mỗi SM có thể xử lí được 48 Thread Group cùng một lúc mà một Thread Group lại có 32-Thread , trong Fermi có tới 16SM vì thế nó có thể xử lí tới 24.576 Thread cùng một thời gian.

>>> Xem thêm: Dell R440

Fermi đã đưa thêm rất nhiều cải tiến để nâng cao độ chính xác của các phép toán, trong đó có hỗ trợ phép toán nhân-cộng hỗn hợp (FMA) với cả 2 phép tính có độ chính xác đơn và độ chính xác đôi. FMA đã cải thiện độ chính xác bằng cách tránh làm tròn giữa phép tính nhân và phép tính cộng, trong khi vẫn giữ được kết quả tức thời chính xác hơn nhiều. Về mặt này Fermi khá giống với Cypress của AMD, cả hai đều tương thích với chuẩn IEEE 754-2008. Cũng như Cypress, Fermi còn hỗ trợ được cả những phép tính với giá trị gần bằng 0.
Tập lệnh bên trong Fermi cũng được mở rộng theo rất nhiều cách với hỗ trợ phần cứng cho cả OpenCL và DirectCompute. Các thay đổi này khiến PTX – ISA NVIDIA được tạo ra để xây dựng cho ứng dụng tính toán CUDA -- cũng phải cập nhật theo. PTA là mức thấp của ISA , nhưng không hẳn ở mức mã máy. Tuy nhiên các ứng dụng CUDA vẫn có thể gộp vào PTX.
NVIDIA vẫn liên tục hỗ trợ OpenCL và DirectCompute. Trong số các thay đổi trong PTX 2.0 có không gian địa chỉ 40-bit 1TB. Không gian địa chỉ đơn này bao gồm các không gian bộ nhớ từng tuyến, từng SM (hoặc xung nhịp) tích hợp vào mô hình lập trình CUDA, với một tập lệnh tải và lưu trữ. Các lệnh này hỗ trợ địa chỉ 64-bit, đủ chỗ cho nhu cầu tương lai. Theo NVIDIA, các cải tiến này sẽ cho phép xử lý chính xác C++ và PTX 2.0 cũng thực hiện nhiều cải tiến khác để tăng cường hỗ trợ C++.
Phân tầng bộ nhớ
Như đã nói, mỗi SM có 64KB SRAM liên kết với nhau . Điều thú vị là Fermi đặt bộ nhớ này giữa phân lưu trữ dữ liệu truyền thống và Cache L1, có thể là 16KB bộ nhớ chia sẻ và 48KB cache hoặc ngược lại. Để thay đổi mode phải tiến hành khi chip ở trạng thái nghỉ. Phần lưu trữ cấu hình cục bộ hoạt đọng như Cache có chức năng như một cache L1 thực sự, gắn kết từng SM nhưng không phải toàn bộ, để củng cố thêm mô hình lập trình CUDA.
Hỗ trợ cache L1 trong Fermi là một cache L2 768KB, kết nối với tất cả các SM. Toàn bộ các truy cập bộ nhớ đều đi qua bộ nhớ Cache này, và chip sẽ đi qua DRAM trong trường hợp lỡ cache. Do đó cache này có tác dụng như một nơi chia sẻ dữ liệu tốc độ cao.  
Cache L2 đặc biệt hữu dụng khi các tuyến từ nhiều SM khác nhau cùng truy cập một loại dữ liệu, khi đó Cache có thể cung cấp băng thông cực lớn vốn đã lớn sẵn trong cấu trúc. NVIDIA cũng đưa ra vài ví dụ về những thuật toán được lợi từ cache nhờ khả năng truy cập bộ nhớ bất thường và ngẫu nhiên, các thuật toán này rất phong phú từ ứng dụng cá nhân cho đến tính toán tốc độ cao như: ray tracing, kernel vật lý và phép nhân ma trận rải rác. Phép tính cơ bản cũng trở nên nhanh hơn – NVIDIA ước lượng chúng nhanh hơn GT200 từ 5 đến 20 lần – một phần nhờ vào cache L2. (Fermi cũng có nhiều đơn vị phần cứng hơn.)
Ngoài ra toàn bộ phân tầng bộ nhớ, từ file thanh ghi đến cache L1 L2 và mạch điều khiển bộ nhớ 64 bit, đều được bảo vệ bởi ECC. Hỗ trợ ECC mạnh đáp ứng nhu cầu đối với nhóm nhiều máy tính lớn, giống như các máy tính trên thị trường HPC, và đây lại là một ví dụ cho việc NVIDIA sử dụng transistor vào các tính năng chuyên về tính toán. Trên thực tế, việc hỗ trợ ECC không hoàn toàn có ý nghĩa với các GPU nhỏ hơn dành cho thị trường đồ họa cá nhân.
Như đã nói, không gian địa chỉ ảo và vật lý của Fermi là 40-bit, nhưng giới hạn vật lý thực sự cho kích thước bộ nhớ của loại chip này lại tùy vào số lượng các thiết bị sử dụng nó. Giới hạn thực tế là 6GB cho bộ nhớ 2Gb và 12GB cho thiết bị 4Gb.
Tất nhiên CPU cũng sẽ liên lạc với phần còn lại của hệ thống. Fermi cũng thừa nhận thực tế đó với một giao diện cải tiến trong hệ thống chủ bao gồm các hệ thống độc lập, chuyên biệt dành cho việc chuyển dữ liệu qua lại với GPU, cho phép truyền dữ liệu đồng thời GPU-hệ thống chủ và ngược lại.
Thế hệ Parallel Thread Execution ISA thứ 2
Fermi là kiến trúc đầu tiên hỗ trợ các tập chỉ thị mới Parallel Thread eXecution (PTX) 2.0. PTX là 1 máy ảo mức thấp và ISA được thiết kế để hỗ trợ các thao tác của bộ xử lý thread song song. Ở thời điểm cài đặt chương trình, các chỉ thị PTX được chuyển đổi sang chỉ thị máy bởi GPU driver.
Các mục tiêu chính của PTX là:
Cung cấp 1 ISA vững chắc trải rộng trên nhiều thế hệ GPU
Đạt được hoàn toàn hiệu suất của GPU trong các ứng dụng đã được biên dịch
Cung cấp 1 ISA độc lập cho C, C++, Fortran và các trình biên dịch khác
Cung cấp 1 bộ phân bố code ISA cho các lập trình viên ứng dụng và middleware
PTX  2.0 giới thiệu nhiều tính năng có thể cải thiện đáng kể khả năng lập trình, sự chính xác và hiệu suất của GPU. Những tính năng này bao gồm: đầy đủ độ chính xác dấu chấm động IEEE 32-bit, không gian địa chỉ hợp nhất cho tất cả các biến và con trỏ, địa chỉ 64-bit và các chỉ thị mới cho OpenCL và DirectCompute.
Nhưng quan trọng nhất, PTX 2.0 được thiết kế đặc biệt để cung cấp sự hỗ trợ đầy đủ cho ngôn ngữ lập trình C++
Không gian địa chỉ hợp nhất cho phép hỗ trợ đầy đủ C++
Fermi và PTX 2.0 ISA bổ sung không gian địa chỉ hợp nhất nhằm hợp nhất những không gian địa chỉ riêng biệt (địa chỉ cục bộ của thread, của block dùng chung và toàn cục) cho các thao tác tải và lưu trữ. Ở PTX 1.0, các chỉ thị load/store được chỉ ra cụ thể cho một trong 3 không gian địa chỉ này; các chương trình có
thể tải hoặc lưu trữ các giá trị vào các không gian địa chỉ được chỉ định vào lúc biên dịch chương trình. Rất khó để có thể bổ sung đầy đủ con trỏ của C và C++ vì không gian địa chỉ của con trỏ có thể không được biết trong lúc biên dịch, và có thể chỉ được xác định trong lúc chạy chương trình.
Với PTX 2.0, một không gian địa chỉ hợp nhất sẽ hợp nhất tất cả 3 không gian địa chỉ vào 1, tạo thành 1 không gian địa chỉ liên tiếp nhau. Một tập đơn các chỉ thị load/store hợp nhất thao tác trên các không gian địa chỉ này, làm tăng thêm những tập chỉ thị load/store của 3 vùng nhớ riêng biệt cục bộ, dùng chung và toàn cục. The 40-bit unified…
Sự bổ sung của không gian địa chỉ hợp nhất cho phép Fermi hỗ trợ các chương trình viết bằng ngôn ngữ C++ thật sự. Trong C++, tất cả các biến và hàm đặt trong các đối tượng và sẽ được truyền đi theo con trỏ.
PTX 2.0 khiến điều đó là có thể để sử dụng các con trỏ hợp nhất để truyền caca1 đối tượng trong bất kỳ không gian bộ nhớ nào, và các đơn vị phần cứng chuyển đổi địa chỉ của Fermi tự động anh xạ các tham chiếu của con trỏ đến đúng không gian bộ nhớ.
Fermi và PTX 2.0 ISA cũng hỗ trợ thêm cho C++ hàm ảo, con trỏ hàm và các toán tử ‘new’ và ‘delete’ để cấp phát và thu hồi động các đối tượng. Các thao tác quản lý exception của C++ như ‘try’ và ‘catch’ cũng được hỗ trợ.
Tối ưu hóa cho OpenCL và DirectCompute
OpenCL và DirectCompute có liên quan mật thiết với mô hình lập trình CUDA, chia sẽ những ý niệm chính của thread, thread block, grid, barrier synchronization, bộ nhớ dùng chung của mỗi block, bộ nhớ toàn cục và các thao tác atomic. Fermi, một kiến trúc CUDA thế hệ thứ 3, tự nhiên nó đã tối ưu hóa rất tốt cho những API này. Ngoài ra, Fermi còn cung cấp phần cứng hỗ trợ cho OpenCL và DirectCompute các chỉ thị chuyển đổi định dạng, cho phép đồ họa và các chương trình tính toán dễ dàng thao tác trên cùng dữ liệu.
PTX 2.0 ISA cũng hỗ trợ thêm cho DirectionCompute các chỉ thị population count, append và bit-reverse.
GPU đầu tiên hỗ trợ bộ nhớ ECC
Fermi là GPU đầu tiên hỗ trợ Error Correcting code (ECC) dựa trên sự bảo vệ của dữ liệu trên  bộ nhớ. Người dùng điện toán GPU đòi hỏi phải có ECC để nâng cao tính toàn vẹn dữ liệu trong những môi trường điện toán hiệu suất cao. EEC là 1 tính năng được mong đợi rất nhiều trong những lĩnh vực như medical imaging và large-scale cluster computing. Những bức xạ xuất hiện tự nhiên có thể khiến 1 bit lưu trữ trên bộ nhớ bị thay đổi, dẫn đến một lỗi mềm.
Công nghệ ECC phát hiện và sửa những lỗi mềm bit-đơn này trước khi chúng ảnh hưởng đến hệ thống. Bởi vì xác suất của những bức xạ như vậy gây ra các lỗi tăng tuyến tính cùng với số hệ thống được cài đặt, cho nên ECC là một yêu cầu thiết yếu trong những large cluster installation.
Fermi hỗ trợ các mã Single-Error Correct Double-Error Detact (SECDED) ECC có thể sửa bất kỳ lỗi bit đơn nào trong phần cứng cũng như dữ liệu khi được truy cập. Ngoài ra , SECDED ECC bảo đảm tất cả các lỗi bit kép và các lỗi đa bit cũng sẽ được phát hiện và báo cáo, do đó chương trình có thể được chạy lại chứ không phải tiếp tục chạy với những dữ liệu sai.
Những file register của Fermi, những bộ nhớ dùng chung, bộ đệm L1, L2 và bộ nhớ DRAM là những thành phần được ECC bảo vệ, điều này khiến cho ECC không chỉ là một phần quan trọng nhất của GPU trong các ứng dụng HPC mà còn là thành phần đáng tin cậy nhất. Ngoài ra, Fermi hỗ trợ các chuẩn công nghiệp như kiểm tra dữ liệu trong suốt quá trình chuyển đổi từ chip sang chip. Tất cả các GPU của NVIDIA hỗ trợ luôn cả chuẩn PCI Express cho CRC kiểm tra cùng với thử lại ở tầng liên kết dữ liệu. Fermi cũng hỗ trợ những chuẩn tương tự GDDR5 cho CRC kiểm tra cùng với thử lại (aka “EDC”) trong suốt quá trình chuyển đổi dữ liệu thông qua memory bus.
Fast Atomic Memory Operations
Những thao tác bộ atomic memory là quan trọng trong lập trình song song, cho phép đồng thời nhiều thread biểu diễn đúng các đắn thao tác đọc-sửa-viết trên những cấu trúc dữ liệu dùng chung. Các thao tác nguyên tử như add, min, max và compare-swap là những  thao tác nguyên tử trong ý nghĩa của các thao tác đọc, sửa và viết, được thi hành mà không có sự ngắt quãng bởi những thread khác. Nhưng thao tác nguyên tử của bộ nhớ được sử dụng rộng rãi cho sắp xếp song song, giảm thiểu caca1 thao tác và xây dựng cấu trức dự liệu song song mà không khóa sự thực thi của những serialize thread.
Với sự kết hợp của nhiều đơn vị nguyên tử trong phần cứng và thêm cả bộ đệm L2, các thao tác nguyên tử của Fermi biểu diễn nhanh gấp 20x  lần khi so sánh với thế hệ GT200.
>>> Xem thêm: Dell R540


Đánh giá

Lưu trữ | Phiên bản Mobile | Quy chế | Chính sách | Chợ24h

GMT+7, 29/3/2024 06:54 , Processed in 0.152366 second(s), 131 queries .

© Copyright 2011-2024 ISOFT®, All rights reserved
Công ty CP Phần mềm Trí tuệ
Số ĐKKD: 0101763368 do Sở KH & ĐT Tp. Hà Nội cấp lần đầu ngày 13/7/2005, sửa đổi lần thứ 4 ngày 03/11/2011
Văn phòng: Tầng 9, Tòa Linh Anh, Số 47-49 Khuất Duy Tiến, P. Thanh Xuân Bắc, Q. Thanh Xuân, Hà Nội
Tel: (84) 2437 875018 | (84) 2437 875017 | E-Mail: cho24h@isoftco.com

Lên trên