Nguồn:
Để tổng kết lại cho buổi giới thiệu sản phẩm hôm 24/9 mới rồi, AMD có đưa ra một số giới thiệu khá ngắn gọn về bộ API (application programming interface) mới nhất mang tên Mantle của mình. Tuy hãng có hứa rằng sẽ bộc lộ cụ thể các chi tiết kỹ thuật của Mantle tại AMD Developer Summit vào tháng 11 tới, nhiều cây bút của các trang tin công nghệ hiện đã đang phát sốt vì những thay đổi mà bộ API này có thể mang lại. Rốt cục Mantle có gì đặc biệt và liệu nó có đích thực có thể thay đổi cách các lập trình viên làm việc với vi xử lí đồ họa? Hãy cùng điểm qua các phân tách của chuyên trang AnandTech về vấn đề này. Mantle và vấn đề hiệu năng Để tả Mantle, một chữ viết tắt API là hoàn không đủ. Nói một cách xác thực và đầy đủ, Mantle là một bộ API cấp thấp chuyên dùng cho kiến trúc Graphic Core Next của AMD. Các bộ API về xử lí đồ họa mà chúng ta thường gặp như OpenGL hay Direct3D có mức trừu tượng hóa cao hơn, cắt giảm bớt khối lượng công việc mà các lập trình viên game và đồ họa phải thực hiện – cũng như cho phép chúng hoạt động trên nhiều loại nền móng phần cứng khác nhau. Cách tiếp cận của Mantle hoàn toàn ngược lại. Bộ API này đi sâu hạ tầng hết mức có thể, đưa các dòng code của lập trình viên đến gần với thiết bị phần cứng hơn bao giờ hết. Cách tiếp cận này không phải quá phức tạp, và cũng không phải mới được thí điểm lần đầu, nhưng cũng khá ảnh đồ họa đẹp tiểu cảnh kiến trúc nhà đẹp nông thôn đồ nội thất sang trọng lâu rồi ngành công nghiệp PC mới xuất hiện một “tay chơi” dám thực hành điều này. Việc được tương tác trực tiếp đến phần cứng là điều không mấy khó khăn cho các lập trình viên console, trong đó kiến trúc phần cứng hầu như là nhất mực – đặc biệt là với các máy console đời cũ khi mà hãng sinh sản sẽ luôn muốn cho phép các lập trình viên tận dụng mọi khả năng xử lí của phần cứng. Nhưng trên PC, do sự đa dạng của các kiến trúc GPU, các API cấp cao vẫn luôn chiếm ưu thế. Về cơ bản, các API cấp cao như Direct3D hay OpenGL đều phải đánh đổi các lợi thế đã nói ở trên với một phần hiệu năng. Ngoài việc làm ẩn đi sức mạnh xử lí đích thực của phấn cứng, tách nó khỏi tầm kiểm soát của các lập trình viên, bản thân quá trình trừu tượng hóa của các API này cũng có những tác động không nhỏ lên hiệu năng. Một trong số những vấn đề thường gặp nhất là vấn đề về draw calls (tạm dịch: lệnh gọi vẽ), lệnh yêu cầu GPU tiến hành render một vật thể. Để tạo ra một frame hình có thể cần tới hàng trăm thậm chí hàng ngàn draw calls (đặc biệt đối với các game 3D bối cảnh rộng), việc xếp đặt các thông báo cần thiết cho việc render và gửi đi một draw calls sẽ tốn một khoảng thời kì nhất quyết. Và tâm thành mà nói thì cho tới giờ giới lập trình game, cả những người gánh vác mảng phần cứng và phần mềm đều chưa bao giờ ưng ý với tốc độ thực thi draw calls trên PC. Kể cả sau khi Microsoft và các đối tác sử dụng Direct3D khác đã cải thiện đáng kể điều này khi nâng cấp từ DirectX 9 lên DirectX 10. Nhìn vào hình minh họa, nhiều người có thể lầm tưởng hiệu năng đồ họa chuyên ngành trang trí nội thất phòng khách kiến trúc nhà đẹp 60m2 nội thất đơn giản sang trọng đã được cải thiện đáng kể trên DirectX 10? Nhưng thực tiễn đáng buồn là từ trước tới giờ số lượng draw calls mà một GPU high-end đích thực có thể xử lí (render) vẫn luôn lớn hơn nhiều lần so với số lực draw calls mà nó nhận được tại bất kỳ thời điểm nào. Cách xử lí thường gặp trước giờ vẫn là thế giảm bớt số lượng draw calls – nhưng với nhu cầu ngày một tăng cao về mặt đồ họa, điều này càng ngày càng lộ rõ nhiều nhược điểm. Các giải pháp tình thế của DirectX như việc gộp chung một cụm cây trên bản đồ của các game chiến thuật vào thành một đối tượng (object) độc nhất để chỉ phải thực hiện một draw call cho cả cụm đó vẫn sẽ hoàn toàn không đủ trong ngày mai sắp tới. Xét cho cùng, để có thể lột tả hết những gì mà các họa sĩ thiết kế dự định bộc lộ, các vật thể cần được xử lí càng tách biệt và chi tiết càng tốt. Trên các máy console, người ta hiện có thể render 10000 – 20000 đối tượng trên mỗi khung hình và vẫn đạt mức 30-60 fps tùy theo chất lượng. Còn trên PC? Chỉ ở mức 2 - 3000 là các lập trình viên đã phải vật lộn với sự cắt giảm mạnh về hiệu năng do API cấp cao gây ra.Kết luận: Mantle là một trong các API cấp thấp hiếm hoi loại bỏ hầu hết việc trừu tượng hóa, cho phép lập trình viên tiếp cận gần hơn với phần cứng và loại bỏ các vấn đề thường gặp đồ họa để chơi fifa online 3 nhà ở gia đình kiến trúc nhà đẹp tphcm nội thất phòng ngủ sang trọng trên API cấp cao như giới hạn số lượng draw call. Mối can hệ với console Chúng ta đã nhắc sơ qua về lợi thế của việc lập trình game console trong phần thứ nhất. Tuy nhiên mối liên hệ của Mantle với các máy console có nhiều điều để nói hơn thế. Nếu Mantle chỉ đơn giản cung cấp khả năng tiếp cận gần hơn với kiến trúc GPU GCN của AMD, nó sẽ chỉ đơn giản. Hiện AMD là nhà cung cấp APU cho cả hai dòng máy được chuộng Xbox One và PS4 . Cả hai máy console sắp ra mắt này đều có vi xử lí hoạt động dựa trên kiến trúc GCN, đồng nghĩa với việc AMD đóng vai trò cực lớn trong việc phát triển chúng – không chỉ trong khuôn khổ phần cứng mà còn có sự hệ trọng không nhỏ với hệ thống phần mềm, tức các game đi kèm. Cụ thể hơn, chính AMD chứ không ai khác sẽ phải cung cấp các driver và API mà các nhà lập trình game cho các máy này sẽ cần dùng để tận dụng hết các sức mạnh xử lí của phần cứng trên đó. Từ trước tới giờ trên console, thực tế thì các API cấp cao và cấp thấp vẫn thường được sử dụng cùng lúc. Các API cấp cao vẫn có thể được sử dụng cho các công việc đơn giản, các công việc đòi hỏi nhiều sức mạnh xử lí từ phần cứng vẫn luôn phải được hiện trên các API cấp thấp. Đối với các chuyên gia, mọi công việc từ quản lí bộ nhớ, quản lí trạng thái của các đối tượng trong game.V.V.Đều trở thành dễ dàng và hợp lí hơn nếu họ hoàn toàn nắm được việc các dòng code của mình tương tác với phần cứng như thế nào – dù rằng điều này cũng đồng nghĩa với khối lượng công việc nhiều hơn đôi chút. Đúc kết từ những điều này, có thể nhận ra rằng khi phát triển API cho các mẫu console mới, thực tiễn AMD sẽ cần phải phát triển hai bộ khác nhau, phục vụ hai mức cường độ công việc khác nhau.Câu hỏi đặt ra là, với cùng một nền móng kiến trúc vi xử lí, liệu hợp lí do nào để AMD – thay vì port thẳng các API này từ console lên PC – lại đi phát triển các bộ API cho từng hệ máy riêng biệt hay không? Tuy hãng chưa đưa ra câu đáp chính thức, nhưng câu đáp mà rất nhiều chuyên gia trong ngành tin tưởng.# Là không. Điều này dẫn đến kết luận rằng Mantle – dù được card đồ họa amd phòng wc kiến trúcnhà đẹp nội thất sang trọng giới thiệu là sản phẩm cho PC – bản tính chính là bộ API cấp thấp của Xbox One được AMD port lên PC. Cách nhìn này nâng tầm vai trò của Mantle lên thêm một bậc. Lúc này các hãng lập trình game trên Xbox One có thể dễ dàng đem phần code đồ họa đã được viết cho console lên PC để tận dụng lại, hơn nữa lại vẫn tận dụng được các lợi thế về mặt hiệu năng khi sử dụng API cấp thấp (ít ra là cho các GPU GNC của AMD). Tuy thực tại không thể phủ nhận rằng AMD chỉ là nắm một phần trên miếng bánh đồ họa PC (đồng nghĩa với Mantle không thể hoàn toàn thay thế Direct3D) nhưng chí ít đây cũng là một bước tiến đáng kể khi cung cấp cho các lập trình viên một phương án để tận dụng lại các dòng code cấp thấp hiệu năng cao của mình, điều mà trước đây hầu như bất khả thi. Lập trình viên Ngay cả khi những lợi thế của Mantle đã là vô cùng rõ ràng, khả năng thành công của API này vẫn chưa phải là tuyệt đối. Bây giờ Mantle mới chỉ được hiểu là một bộ công cụ giúp các lập trình viên tiếp cận hơn với nền tảng phần cứng đồ họa trên PC. Khi port game từ console lên PC, các hãng game vốn thắt phải có một phiên bản module đồ họa xây dựng trên nền API Direct3D nếu muốn game của mình chạy được với nhiều mẫu VGA khác nhau. Nhìn vào các phân tích trong phần 2, người ta có thể lầm tưởng làm thêm 1 phiên bản module đồ họa riêng cho các GPU GNC của AMD bằng cách dùng lại các dòng code viết trên nền Mantle API là rất đơn giản, thậm chí hầu như không phải làm gì. Nhưng đồ họa trong c# khách sạn kiến trúc nhà bếp đẹp thiết kế nội thất sang trọng rất tiếc các dòng mã lệnh cấp thấp không hoạt động đơn giản như vậy, ngay cả khi Mantle trên PC và trên console gần như là một thì khối lượng công việc mà các lập trình viên phải thực hiện cho riêng phiên bản này vẫn lớn hơn việc chỉ làm một bản Direct3D rất nhiều lần. Câu hỏi đặt ra là, liệu AMD có thuyết phục nổi giới lập trình viên ưu ái mình đến vậy hay không? Và câu đáp, theo như các thông tin mà AMD cung cấp thời gian gần đấy, thật may mắn là có. Nói chuẩn xác hơn, các lãnh đạo của AMD không ngơ ngơ đến mức bất chợt một ngày đẹp trời nổi hứng bảo nhau phát triển Mantle rồi mới tính cách mời gọi các hãng game dùng API của mình. Không, Mantle ra đời bởi suốt bao bấy lâu đồ họa trong excel phòng ăn đặt báo kiến trúc nhà đẹp trang trí nội thất sang trọng giới lập trình đã kêu gào khản cổ yêu cầu các hãng sinh sản đồ họa PC cung cấp cho họ một bộ API cấp thấp để thỏa sức “vắt kiệt” tiềm năng xử lí của phần cứng - và AMD đã quyết định trả lời. Chí ít đó là những gì mà hãng này đang cố mô tả trong những thông báo cung cấp cho giới truyền thông.Chí ít thì cho đến giờ khắc này, Mantle đã có một khởi đầu khá tốt đẹp. Một trong những Studio tên tuổi nhất của cả ngành công nghiệp game - DICE của EA – đã nhận vai trò tiền phong trong việc vận dụng Mantle vào trong phần tiếp theo của tựa game đình đám Battlefield. Nếu những thông tin AMD cung cấp là thật, chúng ta sẽ sớm thấy hàng loạt tựa game gán mác Mantle ra mắt trên thị trường. Tác hại của API cấp thấp Dị biệt lớn nhất của các máy console với PC là sự đồng nhất. Hiện giờ trên thị trường đồ họa PC, 3 cái tên nắm nhiều quyền lực nhất vẫn là AMD, Intel và NVIDIA. Kiến trúc đồ họa của mỗi hãng là hoàn toàn khác nhau, thậm chí tùy theo khoảng cách về tuổi đời mà các dòng sản phẩm của cùng một hãng cũng có thể khác nhau một trời một vực. Chúng chỉ được hợp nhất với nhau bởi các yêu cầu tính năng mà Microsoft đã định ra trong Direct3D. Nếu không có sự tồn tại của các bộ API như Direct3D và OpenGL, việc chúng ta có thể dễ dàng tận hưởng mọi loại thể game trên phần nhiều nền móng phần cứng như Hiện nay hầu như là bất khả thi, bởi mỗi máy PC có một cấu hình khác nhau. Khoảng cuối thập kỷ 90 của thế kỷ trước. Một tên tuổi lớn khác của ngành công nghiệp vi xử lí đồ họa thời bấy giờ là 3dfx cũng có một bộ API cấp thấp cho riêng các phần cứng của mình mang tên Glide. Thời điểm này có thể nói ngành công đồ họa và xử lý ảnh cầu thang xem kiến trúc nhà đẹp nội thất phòng ngủ sang trọng nghiệp máy tính đã qua thuở nguyên sơ, nhưng các API cấp cao với khả năng trừu tượng hóa mạnh vẫn còn rất hiếm hoi, và Microsoft thì vẫn còn đang vật lộn hoàn thiện Direct3D. Cũng nên chi mà Glide lúc đó rất được các lập trình viên ưa thích, đến mức mà có những thời điểm game mới ra mắt chỉ hỗ trợ mỗi Glide (tức chỉ chạy trên nền phần cứng của hãng 3dfx) hoặc nếu có phiên bản dựa trên Direct3D, OpenGL thì chất lượng cũng kém hơn so với phiên bản dùng Glide. Về mặt lợi ích trước mắt, người dùng VGA của 3dfx có hiệu năng tốt hơn, nhiều tính năng hơn và ít lỗi hơn.Nhưng ngược lại người dùng card ATI (sau này thuộc về AMD) và NVIDIA dĩ nhiên sẽ không lấy gì làm vui vẻ, thậm chí đôi lúc gần như bị bỏ rơi. Cũng chính vì vậy, sau này người ta coi sự lụi tàn của Glide và sự sụp đổ của 3dfx hồi 2002 là tin tốt cho toàn ngành công nghiệp. Direct3D được hoàn thiện và lên ngôi vua API trên thị trường PC. Lúc này việc các hãng phát triển game có thể tụ hợp mọi nguồn lực vào một API độc nhất đã đem đến kết quả tốt hơn cho tất người dùng thay vì phân tán sức lực vào các cách render khác nhau cho từng nền tảng phần cứng khác nhau. Giờ đây khi mà Direct3D đã già cỗi và các trở lực về hiệu năng như trong phần 1 ngày càng gây phiền phức cho giới lập trình, sự xuất hiện của Mantle thực thụ là cần thiết. Nhưng để tránh đi vào vết xe đổ của Glide, câu hỏi cần đặt ra là liệu Mantle có tác dụng gì cho người dùng NVIDIA và Intel hay không. Liệu các hãng sinh sản game có phải một lần nữa phân tán nhân công của mình để phát triển đồng thời các phiên bản game trên nền Mantle và Direct3D – đồng nghĩa với việc chất lượng bản game Direct3D sẽ phải đi xuống? Việc phát triển một API cấp thấp hoàn chỉnh chẳng thể xong trong 1 sớm một chiều, và cũng không có vẻ rằng NVIDIA và Intel cũng sẽ vội chạy theo cuộc đua này khiến cho thị trường xáo động. Chúng ta sẽ cần phải chờ xem AMD sẽ thương thảo như thế nào để Mantle không đem lại những tác động xấu lên thị trường như Glide đã từng làm. Tham khảo: Anandtech |
Link: http://genk.Vn/may-tinh/tim-hieu-ve-bo-api-mantle-day-hua-hen-cua-amd-20131010224134847.Chn
Không có nhận xét nào:
Đăng nhận xét