Hướng dẫn Redshift Render Farm 2026: Thiết lập Texture Budget, cache .rstexbin và loại bỏ độ trễ Out-of-Core
Tóm tắt // Ghi chú kiến trúc cho Technical Director
- Trần cấp phát VRAM: Trong pipeline Redshift tăng tốc GPU hiện đại, thông lượng tính toán thô trở nên vô dụng nếu dữ liệu cảnh vượt bộ nhớ phần cứng trên card. Asset sản xuất có UDIM 8K/16K nhiều tile, displacement micro-polygon và volume khói/lửa OpenVDB dày đặc nhanh chóng ngốn bộ nhớ GPU. Vì hệ điều hành host cần giữ 1,5 GB – 3,5 GB bộ đệm hiển thị cho Desktop Window Manager (DWM), đặt bể bộ nhớ khả dụng của Redshift lên 100% chắc chắn sẽ gây lỗi sập kernel CUDA Out-of-Memory (OOM).
- Cái bẫy độ trễ Out-of-Core trên SaaS: Các môi trường SaaS render farm tự động chạy giao diện dòng lệnh (CLI) headless, không có số liệu theo dõi bộ nhớ thời gian thực. Khi cảnh phức tạp dùng hết VRAM, Redshift kích hoạt cơ chế an toàn Out-of-Core (OOC), đẩy texture và hình học tràn qua bus PCIe của bo mạch chủ sang RAM hệ thống. Thông lượng dữ liệu sụp 28 đến 50 lần (từ tốc độ GDDR7 gốc ~1.792 GB/s xuống giới hạn bus PCIe 32–64 GB/s), bỏ đói các streaming multiprocessor (SM) khiến chúng nằm chờ, và làm thời gian render tăng 300% đến 500% với chi phí tính toán tính tiền khổng lồ.
- Yêu cầu bắt buộc về .rstexbin và cắt gọn dữ liệu: Loại bỏ nút thắt bộ nhớ đòi hỏi kỷ luật pipeline chặt chẽ trước khi render: chuyển hàng loạt texture EXR, TIFF và PNG thô sang Redshift Texture Binary gốc (
.rstexbin) cho phép mipmap động theo khoảng cách camera và stream theo tile khi cần (64×64/128×128), giảm dung lượng VRAM texture đang dùng tới 95%. Dùng Render Multi-Instance, giới hạn số lượt subdivision thích ứng và loại bỏ kênh velocity/divergence không dùng khỏi lưới OpenVDB giúp giảm thêm dung lượng volume 60%. - Giải pháp IaaS bare-metal dung lượng cao: Loại bỏ hẳn tình trạng bus PCIe bị bóp và tránh mức phạt OOC cần mở rộng phần cứng bare-metal thật sự. Triển khai node IaaS render farm chuyên dụng chạy dàn đầu bảng NVIDIA RTX 5090 (32GB GDDR7) và RTX 4090 , điều khiển bởi bộ xử lý AMD Ryzen™ Threadripper™ PRO xung cao và 256GB RAM host, bảo đảm cảnh luôn nằm 100% In-Core. Toàn quyền quản trị Administrator qua RDP độ trễ thấp cho phép TD theo dõi việc cấp phát bộ nhớ ngay trong Redshift RenderView trước khi chạy cluster nhiều GPU:Tốc độ tối đa – Tự do tuyệt đối.
Trong pipeline render tăng tốc GPU hiện đại, thông lượng tính toán thô (TFLOPS) hoàn toàn vô nghĩa nếu dữ liệu cảnh không vừa bộ nhớ trên card. Với Technical Director (TD) ánh sáng, generalist 3D cấp cao và trưởng nhóm VFX dùng Redshift của Maxon, điểm hỏng quan trọng nhất hiếm khi là độ phức tạp shader hay số lần nảy tia, màlà mức tiêu thụ VRAM không được kiểm soát.
Khi chuẩn sản xuất hướng tới hình học dày hơn, bộ texture UDIM 8K/16K nhiều tile và mô phỏng lửa, khói OpenVDB nhiều voxel, cảnh thường xuyên chạm trần bộ nhớ vật lý của phần cứng cục bộ. Khi vượt ngưỡng này, một trong hai thảm họa sản xuất xảy ra: driver GPU dừng với lỗi sập CUDA Out-of-Memory (OOM), hoặc Redshift kích hoạt cơ chế phân trang Out-of-Core (OOC) , kéo thông lượng render giảm 300% đến 500%.
Hướng dẫn kỹ thuật 2026 này mổ xẻ kiến trúc bộ nhớ nội bộ của Redshift, đưa ra cấu hình đã kiểm chứng thực tế cho ngân sách cache và cho thấy môi trường sản xuất doanh nghiệp vượt qua hoàn toàn nút thắt bộ nhớ ra sao.
1. Mổ xẻ kiến trúc bộ nhớ nội bộ của Redshift
Để tránh treo toàn hệ thống, Redshift chia bộ nhớ GPU vật lý thành các vùng cấp phát riêng. Hiểu cách chia này là điều bắt buộc trước khi chỉnh bất kỳ tùy chọn nội bộ nào.
| Tổng VRAM GPU vật lý | ||
|---|---|---|
| Bộ đệm hiển thị của hệ điều hành host và DCC Windows DWM, giao diện desktop Dành riêng: 1,5 GB – 3,5 GB |
Bể bộ nhớ khả dụng của Redshift (Cấu hình mặc định: ~85% – 90% tổng VRAM) |
|
| Bộ nhớ làm việc Tia, tăng tốc BVH, bộ đệm frame |
Texture và hình học Bể cấp phát cache (.rstexbin, OOC) |
|
Trong Redshift Preferences (vào mục Memory / Performance), ba tham số cốt lõi quyết định cấu trúc này:
-
Percentage of GPU Memory to Use for Redshift (mặc định: ~85%–90%): Xác định phần VRAM vật lý tối đa Redshift được phép lấy từ mỗi GPU.
-
Percentage of That Memory for Free Reserve (mặc định: ~15%): Vùng đệm an toàn chỉ dành cho các đợt tăng đột biến của hệ điều hành, việc vẽ lại viewport chạy nền và hiển thị bộ đệm frame.
-
Texture Cache Budget: Mức trần cứng dành để cache texture của cảnh ngay trong bộ nhớ GPU tốc độ cao.
2. Cái giá hiệu năng thực của phân trang Out-of-Core (OOC)
Redshift được đánh giá cao nhờ engine Out-of-Core độc quyền. Khác với các ray tracer cứng nhắc sập ngay khi hết VRAM, Redshift chuyển êm phần hình học và texture tràn sang RAM hệ thống host qua bus PCIe của bo mạch chủ.
Tuy nhiên, nhiều artist lầm tưởng Out-of-Core là tấm vé miễn phí. Trong sản xuất, OOC là lưới an toàn khẩn cấp, không phải trạng thái vận hành hiệu quả:
-
Thâm hụt băng thông bus: Card đồ họa cao cấp (như RTX 4090 và RTX 5090) có băng thông VRAM nội bộ cực nhanh, vượt 1.000 GB/s đến 1.700 GB/s. Khi dữ liệu bị đẩy sang RAM hệ thống, việc truyền bò qua bus PCIe 4.0/5.0 ở tốc độ thực tế 32 GB/s đến 64 GB/s.
-
Giật nhỏ và luồng bị đứng: Khi các bó tia duyệt Bounding Volume Hierarchy (BVH) và truy vấn tile texture nằm trong RAM hệ thống, các streaming multiprocessor (SM) của GPU phải ngồi chờ dữ liệu truyền qua bus.
-
Thời gian render phình to nghiêm trọng: Số liệu sản xuất cho thấy frame rơi vào chế độ Out-of-Core nặng có thời gian render mỗi frame tăng 3 đến 5 lần, nhanh chóng phá vỡ lịch giao hàng của studio.
Cái giá thực của phân trang Out-of-Core: VRAM In-Core và tràn qua bus PCIe
Theo dõi thâm hụt thông lượng bộ nhớ, tình trạng streaming multiprocessor (SM) đứng chờ và thời gian render chuỗi frame phình to trong Redshift.
| Tầng kiến trúc | Luồng phân trang Out-of-Core (OOC) (trạng thái khẩn cấp) | Luồng VRAM In-Core gốc (sản xuất tối ưu) |
|---|---|---|
| 1. Thâm hụt băng thông bus Kết nối bộ nhớ và tốc độ |
Hết dung lượng VRAM
→ Tràn sang RAM hệ thống host → Nghẽn PCIe 32 – 64 GB/s Thông lượng sụp mạnh: Việc truyền dữ liệu bị đẩy qua bus bo mạch chủ, băng thông giảm 28 đến 50 lần so với bộ nhớ gốc trên card.
|
Dung lượng 32GB GDDR7
→ Nằm 100% In-Core → Thông lượng gốc ~1.792 GB/s Không có nút thắt bus: Toàn bộ dữ liệu cảnh nằm trên silicon tốc độ cực cao, không phải đi qua bus PCIe, mở khóa tốc độ ray tracing đỉnh.
|
| 2. Cơ chế nhân và luồng Bão hòa SM và độ trễ |
Tia duyệt BVH
→ Truy vấn texture qua PCIe → Streaming Multiprocessor nằm chờ Bong bóng thực thi warp: Hàng nghìn nhân CUDA/RT của GPU liên tục đứng và nằm chờ các khối texture và mảnh hình học còn thiếu truyền tới qua PCIe.
|
Tia duyệt BVH
→ Cache hit tức thì dưới µs → Nhân bão hòa liên tục 100% Tính tia không gián đoạn: Pipeline thực thi phần cứng chạy hết công suất, không có luồng bị bỏ đói, tăng tốc duyệt BVH và shading bề mặt.
|
| 3. Số liệu giao hàng Thời gian hoàn thành frame và lịch |
Mức nền: ~3 phút
→ Chuỗi giật nhỏ dây chuyền → 12 – 18 phút (chậm 3 – 5 lần) Vỡ deadline sản xuất: Biến một batch 10 giờ thành cực hình 50 giờ. OOC nặng gây rủi ro độ trễ nghiêm trọng và lỗi sập do timeout driver (TDR).
|
Mức nền: ~3 phút
→ Mở rộng tuyến tính nhiều GPU → Hoàn thành đúng hạn, dự đoán được Giao chuỗi frame chắc chắn: Mỗi frame hoàn thành trong khung thời gian tính toán đã dự trù, giữ tiến độ dự đoán được 100% cho các dự án thương mại gấp.
|
Dù cơ chế Out-of-Core của Redshift tránh được lỗi sập ứng dụng nghiêm trọng, coi nó là khoảng trống thường xuyên sẽ khiến thời gian render chịu mức phạt 300% đến 500%. Khi nâng lên VRAM 32GB trên RTX 5090, studio bỏ qua hoàn toàn nút thắt băng thông PCIe, giữ streaming multiprocessor bão hòa 100% và bảo toàn deadline giao hàng.
3. Pipeline texture hiệu quả cao với .rstexbin
Texture EXR, TIFF hay PNG 8K và 16K không nén là con đường nhanh nhất dẫn tới thiếu VRAM. Redshift đạt hiệu quả tối đa khi asset ảnh được chuyển sang định dạng gốc dạng tile, có mipmap của nó: Redshift Texture Binary (.rstexbin).
Vì sao .rstexbin bảo vệ ngân sách bộ nhớ của bạn:
-
Mipmap theo khoảng cách camera: Engine chỉ nạp linh hoạt mức mipmap cần cho khoảng cách camera hiện tại. Một texture bề mặt 8K lớn trên prop ở hậu cảnh có thể chỉ cần tile mipmap 256×256 trong VRAM, tiết kiệm tới 95% bộ nhớ.
-
Stream theo tile khi cần: Texture được chia thành các tile cục bộ 64×64 hoặc 128×128 pixel. Nếu chỉ một phần nhỏ của asset nằm trong khung nhìn, chỉ những tile tương ứng được giữ trong bộ nhớ.
Tự động chuyển đổi hàng loạt qua CLI:
Với pipeline studio, hãy chuyển đổi asset hàng loạt bằng công cụ dòng lệnh standalone của Redshift trước khi chạy render chuỗi frame:
Trong Cinema 4D, Houdini hoặc Maya, hãy bảo đảm “Auto-Convert Textures to .rstexbin” được bật trong thiết lập render để cho phép chuyển đổi tự động trên các thư mục cache cục bộ.
4. Giảm chi phí hình học, tessellation và volume
Nếu texture đã được chuyển hết sang .rstexbin mà số liệu VRAM vẫn kích hoạt phân trang OOC khi vượt 22GB–24GB, nguyên nhân chính là cấp phát hình học quá mức:
-
Giới hạn Adaptive Subdivision: Adaptive subdivision không kiểm soát sẽ phá hủy bể bộ nhớ. Đặt
Minimum Edge Lengthquá thấp có thể dễ dàng biến một nhân vật 500.000 polygon thành 40.000.000 micro-polygon tessellation chỉ trong một frame. Hãy giới hạn chặt số lượt subdivision (tối đa 2 hoặc 3 lượt). -
Bắt buộc dùng Render Multi-Instance: Trong Cinema 4D, đừng bao giờ để Cloner ở chế độ “Instance”. Luôn đặt chúng là Render Instances hoặc Multi-Instances. Instance tiêu chuẩn nhân bản mảng vertex thẳng vào VRAM, làm dung lượng mesh tăng tuyến tính.
-
Cắt gọn kênh OpenVDB: Mô phỏng volume của Houdini và Cinema 4D thường xuất ra các kênh dữ liệu chết (
density,temperature,vel.x,vel.y,vel.z,divergence,heat). Hãy xóa kênh velocity và divergence không dùng trước khi render, chỉ giữdensityvàtemperature. Cắt bỏ các kênh không cần thiết giúp giảm ngay mức tiêu thụ bộ nhớ OpenVDB tới 60%.
Ma trận tối ưu pipeline
Kiểm soát VRAM cho hình học, instancing và volume
Số liệu phần cứng và quy trình
| Hạng mục pipeline | Pipeline chưa tối ưu (bẫy SaaS / OOC) | Quy trình tối ưu (chuẩn sản xuất IaaS) | Chênh lệch VRAM |
|---|---|---|---|
| Adaptive Subdivision Displacement dưới mức polygon |
Min Edge không giới hạn
→ Hơn 40 triệu micro-polygon → Sập OOM Một model nhân vật 500k bùng nổ vượt dung lượng VRAM 24GB chỉ trong một frame. |
Giới hạn chặt (2–3 lượt)
→ Kẹp theo không gian màn hình → Ổn định In-Core Giữ khoảng trống polygon; loại bỏ tessellation mất kiểm soát mà không giảm chất lượng hình ảnh. |
-70% VRAM |
| Geometry Instancing Scatter MoGraph trong C4D |
“Instance” tiêu chuẩn
→ Sao chép toàn bộ vertex → Nghẽn bus PCIe Nhân bản toàn bộ mảng vertex vào VRAM theo tuyến tính, buộc phân trang Out-of-Core nặng. |
Chế độ Multi-Instance
→ Một con trỏ mesh duy nhất → Không phình VRAM Nạp hình học gốc một lần; hàng triệu instance được tính bằng ma trận biến đổi gọn nhẹ. |
-85% VRAM |
| Lưới OpenVDB Pyro và khói Houdini / C4D |
Cache chưa cắt gọn
→ Kênh chết (vel, div) → Timeout driver TDR Xuất các kênh velocity và divergence vô dụng, làm cache mỗi frame phình lên trên 8GB. |
Channel Pruning SOP
→ Chỉ giữ Density và Temp → VDB tinh gọn Loại bỏ lưới không dùng trước khi đồng bộ lên cloud; tăng tốc ray marching và giảm chi phí lưu trữ. |
-60% VRAM |
Quy tắc sản xuất
Cắt kênh volume chết, bắt buộc dùng Multi-Instance và giới hạn subdivision trước khi phát job lên nhiều node. Trên IaaS Render Farm, Technical Director có thể theo dõi trực tiếp việc cấp phát VRAM ngay trong giao diện Redshift RenderView gốc qua RDP độ trễ thấp trên node RTX 5090 32GB, bảo đảm không có độ trễ Out-of-Core trước khi chạy batch chuỗi frame sản xuất.
5. Vượt giới hạn vật lý: Bước chuyển VRAM 32GB
Bạn có thể tối ưu tile texture, giới hạn số lượt subdivision và cắt gọn lưới volume, nhưng phim điện ảnh và quảng cáo điện ảnh cao cấp năm 2026 rồi cũng chạm tới một thực tế phần cứng không tránh được. Một chuỗi cảnh có:
-
hơn 50 bộ texture UDIM nhiều tile,
-
pass grooming tóc và lông nhân vật dày đặc (XGen hoặc Ornatrix),
-
motion blur biến dạng trên lưới mật độ cao, và
-
tán xạ khí quyển dạng volume phức tạp,
…đòi hỏi 26GB đến 30GB VRAM chuyên dụng mỗi frame.
Trên GPU 24GB tiêu chuẩn (như RTX 3090 hoặc RTX 4090), cảnh quy mô này lập tức rơi xuống vực Out-of-Core hoặc gây lỗi timeout driver nghiêm trọng.
Để vượt các giới hạn phần cứng tuyệt đối này, studio chuyển các chuỗi cảnh quan trọng sang hạ tầng bare-metal chuyên dụng. Dùng node nhiều GPU trang bị NVIDIA GeForce RTX 5090 (32GB GDDR7) bảo đảm cảnh sản xuất dày đặc asset luôn nằm 100% In-Core.
Khi không có chỗ cho sai sót và deadline đang đến gần, chạy dự án trên một Redshift render farm chuyên dụng với kiến trúc VRAM 32GB mật độ cao là cách duy nhất đã được chứng minh để duy trì tốc độ ray tracing đỉnh ổn định.
Benchmark phần cứng
Ma trận kiến trúc NVIDIA GeForce RTX 4090 và RTX 5090
Phân tích thông lượng In-Core của Redshift
| Thông số | RTX 4090 (Ada Lovelace) | RTX 5090 (Blackwell) | Chênh lệch thế hệ | Tác động thực tế trong Redshift |
|---|---|---|---|---|
| Kiến trúc | Ada Lovelace (TSMC 4N) | Blackwell (TSMC 4NP) | Silicon thế hệ mới |
Pipeline ray tracing phần cứng tối ưu và cây tăng tốc BVH gọn hơn. |
| Dung lượng VRAM | 24 GB GDDR6X | 32 GB GDDR7 | Thêm 33% khoảng trống |
Chứa được bộ UDIM 8K/16K dày đặc; loại bỏ phân trang Out-of-Core và lỗi treo driver do OOM. |
| Băng thông bộ nhớ | 1.008 GB/s (384-bit) | ~1.792 GB/s (512-bit) | Tăng 78% băng thông |
Tăng tốc duyệt BVH thô; viewport tương tác trong Redshift IPR phản hồi gần như tức thì. |
| Nhân CUDA | 16.384 nhân | 21.760 nhân | Tăng 33% sức tính |
Rút ngắn mạnh thời gian render Path Tracing brute-force trên các batch chuỗi frame. |
| Nhân RT / Tensor | Thế hệ 4 (512 Tensor / 128 RT) | Thế hệ 5 (680 Tensor / 170 RT) | Tensor thế hệ mới |
Cho kết quả khử nhiễu OptiX AI sạch ở số sample cực thấp mà không bị loang lổ. |
| TDP (công suất nhiệt) | 450W | ~600W | Tăng 33% tải nhiệt |
Cần nguồn điện hàng kilowatt và hạ tầng làm mát chủ động của trung tâm dữ liệu Tier-3 doanh nghiệp. |
Nhận định phần cứng
Trong khi dàn máy sản xuất tại chỗ thường chật vật với mức nhiệt 600W của nhiều card thế hệ mới, một IaaS Render Farm cung cấp cluster bare-metal nhiều GPU chuyên dụng (gói 4i, 5i, 9i với RTX 5090 32GB GDDR7) có hệ thống làm mát doanh nghiệp và CPU AMD Ryzen™ Threadripper™ PRO. Điều này mở khóa khả năng thực thi In-Core liên tục và loại bỏ tình trạng bus PCIe bị đứng cho các pipeline Redshift thương mại khắt khe nhất.
Triển khai silicon Blackwell ở quy mô lớn: Các gói nhiều GPU chuyên dụng của iRender
Dù VRAM 32GB của RTX 5090 giải quyết khủng hoảng Out-of-Core trên lý thuyết, việc tự lắp các card này tại chỗ gặp nhiều trở ngại vận hành lớn: mức tiêu thụ 600W mỗi GPU, lượng nhiệt lớn cần vòng tản nhiệt nước tùy chỉnh và hạ tầng điện cấp doanh nghiệp.
Để các cơ sở VFX và studio thương mại tiếp cận ngay phần cứng này mà không tốn chi phí hạ tầng hay chờ đợi mua sắm, iRender cung cấp Cinema 4D & Redshift render farm cấp doanh nghiệp chạy trên node bare-metal tản nhiệt nước cấu hình sẵn, tối ưu riêng cho Redshift 2026. Với bộ xử lý AMD Ryzen™ Threadripper™ PRO , kết nối PCIe 5.0 tần số cao và 256GB RAM host vật lý, studio có thể mở rộng ngay từ dàn lookdev chuyên dụng lên cỗ máy 8x RTX 5090.
Chọn gói bare-metal chuyên dụng phù hợp mật độ cảnh và lịch giao hàng của bạn:
Cấu hình node bare-metal doanh nghiệp: Cluster RTX 5090 chuyên dụng
Các gói server nhiều GPU tản nhiệt nước, tối ưu cho khối lượng sản xuất Cinema 4D và Redshift 2026.
| Gói server | Silicon GPU và VRAM | Bộ xử lý host và bộ nhớ | Khối lượng C4D và Redshift phù hợp |
|---|---|---|---|
| Gói 3i Node một GPU |
1x RTX 5090
VRAM 32GB GDDR7
|
Threadripper™ PRO 3955WX
256GB RAM | NVMe doanh nghiệp 2TB
|
Lookdev tương tác, kiểm tra shader cho từng asset, bake texture và render chuỗi quảng cáo nhẹ. |
| Gói 4i Node hai GPU |
2x RTX 5090
Tổng VRAM 64GB
|
Threadripper™ PRO 3955WX
256GB RAM | NVMe doanh nghiệp 2TB
|
Animation MoGraph mật độ trung bình, sản phẩm mạng xã hội nhiều camera và môi trường scatter procedural. |
| Gói 5i Cluster bốn GPU CỖ MÁY CỦA STUDIO
|
4x RTX 5090
Tổng VRAM 128GB
|
Threadripper™ PRO 5975WX
256GB RAM | NVMe doanh nghiệp 2TB
|
Sản phẩm thương mại 4K 60fps cao cấp, mô phỏng khói/pyro OpenVDB dày đặc và thiết lập X-Particles nặng. |
| Gói 9i Cỗ máy tám GPU MẬT ĐỘ TÍNH TOÁN TỐI ĐA
|
8x RTX 5090
Tổng VRAM 256GB
|
Threadripper™ PRO 5975WX
256GB RAM | NVMe doanh nghiệp 2TB
|
Giao chuỗi frame khẩn cấp giờ chót, dự án phát sóng 8K, mô phỏng đám đông Alembic khổng lồ và pipeline Deep EXR nhiều pass. |
Câu hỏi thường gặp (FAQ)
Làm sao xác nhận chuỗi frame Redshift của tôi đang render Out-of-Core?
Mở cửa sổ Redshift Feedback Display (Log Console) khi đang render. Kiểm tra số liệu bộ nhớ xuất ra. Nếu console hiện cảnh báo như Rendering Out-of-Core hoặc cho thấy cấp phát bộ nhớ vượt dung lượng vật lý của GPU, asset đang được phân trang sang RAM hệ thống qua bus PCIe, làm giảm tốc độ render.
Cấu hình Texture Cache Budget khuyến nghị là bao nhiêu?
Với GPU 24GB tiêu chuẩn, giữ Texture Cache Budget trong khoảng 4GB đến 6GB. Với GPU 32GB thế hệ mới (RTX 5090), bạn có thể nâng an toàn lên 8GB–12GB. Điều này bảo đảm texture độ phân giải cao được stream tức thì mà vẫn giữ nhiều khoảng trống cho bảng BVH ray tracing phức tạp và displacement hình học.
NVLink có gộp VRAM trên các kiến trúc GPU hiện đại không?
Không. Tính năng gộp bộ nhớ NVLink đã bị loại khỏi kiến trúc GPU phổ thông sau thế hệ Ampere. GPU Ada và Blackwell hiện đại không có chân NVLink vật lý. Mỗi card tự quản lý bể bộ nhớ trên card của mình. Vì vậy, dung lượng bộ nhớ gốc lớn trên mỗi GPU (như 32GB trên RTX 5090) là yếu tố sống còn cho sự ổn định của sản xuất phức tạp.






