'\" t .\" Title: ROCM Support .\" Author: [see the "AUTHOR" section] .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 07/21/2026 .\" Manual: \ \& .\" Source: \ \& .\" Language: Persian .\" .TH "ROCM SUPPORT" "1" "07/21/2026" "\ \&" "\ \&" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .\" http://bugs.debian.org/507673 .\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" ----------------------------------------------------------------- .\" * (re)Define some macros .\" ----------------------------------------------------------------- .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .\" toupper - uppercase a string (locale-aware) .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .de toupper .tr aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ \\$* .tr aabbccddeeffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz .. .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .\" SH-xref - format a cross-reference to an SH section .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .de SH-xref .ie n \{\ .\} .toupper \\$* .el \{\ \\$* .\} .. .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .\" SH - level-one heading that works better for non-TTY output .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .de1 SH .\" put an extra blank line of space above the head in non-TTY output .if t \{\ .sp 1 .\} .sp \\n[PD]u .nr an-level 1 .set-an-margin .nr an-prevailing-indent \\n[IN] .fi .in \\n[an-margin]u .ti 0 .HTML-TAG ".NH \\n[an-level]" .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 \." make the size of the head bigger .ps +3 .ft B .ne (2v + 1u) .ie n \{\ .\" if n (TTY output), use uppercase .toupper \\$* .\} .el \{\ .nr an-break-flag 0 .\" if not n (not TTY), use normal case (not uppercase) \\$1 .in \\n[an-margin]u .ti 0 .\" if not n (not TTY), put a border/line under subheading .sp -.6 \l'\n(.lu' .\} .. .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .\" SS - level-two heading that works better for non-TTY output .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .de1 SS .sp \\n[PD]u .nr an-level 1 .set-an-margin .nr an-prevailing-indent \\n[IN] .fi .in \\n[IN]u .ti \\n[SN]u .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .ps \\n[PS-SS]u \." make the size of the head bigger .ps +2 .ft B .ne (2v + 1u) .if \\n[.$] \&\\$* .. .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .\" BB/EB - put background/screen (filled box) around block of text .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .de BB .if t \{\ .sp -.5 .br .in +2n .ll -2n .gcolor red .di BX .\} .. .de EB .if t \{\ .if "\\$2"adjust-for-leading-newline" \{\ .sp -1 .\} .br .di .in .ll .gcolor .nr BW \\n(.lu-\\n(.i .nr BH \\n(dn+.5v .ne \\n(BHu+.5v .ie "\\$2"adjust-for-leading-newline" \{\ \M[\\$1]\h'1n'\v'+.5v'\D'P \\n(BWu 0 0 \\n(BHu -\\n(BWu 0 0 -\\n(BHu'\M[] .\} .el \{\ \M[\\$1]\h'1n'\v'-.5v'\D'P \\n(BWu 0 0 \\n(BHu -\\n(BWu 0 0 -\\n(BHu'\M[] .\} .in 0 .sp -.5v .nf .BX .in .sp .5v .fi .\} .. .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .\" BM/EM - put colored marker in margin next to block of text .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .de BM .if t \{\ .br .ll -2n .gcolor red .di BX .\} .. .de EM .if t \{\ .br .di .ll .gcolor .nr BH \\n(dn .ne \\n(BHu \M[\\$1]\D'P -.75n 0 0 \\n(BHu -(\\n[.i]u - \\n(INu - .75n) 0 0 -\\n(BHu'\M[] .in 0 .nf .BX .in .fi .\} .. .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- .\" ----------------------------------------------------------------- .\" * MAIN CONTENT STARTS HERE * .\" ----------------------------------------------------------------- .SH "نام (NAME)" criu-amdgpu-plugin \- افزونه‌ای برای CRIU جهت پشتیبانی از ثبت وضعیت/بازیابی در فضای کاربری برای پردازنده‌های گرافیکی AMD\&. .SH "پشتیبانی‌های فعلی (CURRENT SUPPORT)" .sp سیستم‌های تک و چند پردازنده گرافیکی (Gfx9)، ثبت وضعیت / بازیابی روی سیستم‌های دیگر، ثبت وضعیت / بازیابی درون کانتینر داکر، پای‌تورچ (Pytorch)، تنسورفلو (Tensorflow) و با استفاده از استریمر تصویر CRIU (CRIU Image Streamer)\&. .SH "توضیحات (DESCRIPTION)" .sp اگرچه \fBcriu\fR ابزاری کارآمد برای ثبت وضعیت (checkpoint) و بازیابی برنامه‌های در حال اجرا است، اما محدودیت‌های مشخصی دارد؛ برای نمونه نمی‌تواند برنامه‌هایی را که فایل‌های دستگاه (device files) باز دارند مدیریت کند\&. به‌منظور پشتیبانی از بارهای کاری مبتنی بر \fBROCm\fR در \fBcriu\fR، لازم است عملکرد هستهٔ criu از طریق یک سازوکار الحاقی مبتنی بر افزونه ارتقا یابد\&. افزونهٔ \fBcriu\-amdgpu\-plugin\fR پشتیبانی لازم را برای criu فراهم می‌آورد تا امکان ثبت وضعیت / بازیابی با ROCm میسر شود\&. .SH "وابستگی‌ها (DEPENDENCIES)" .PP \fBپشتیبانی از amdkfd\fR .RS 4 به‌منظور ثبت تصویر لحظه‌ای (snapshot) از \fBVRAM\fR و وضعیت سایر دستگاه‌های \fBGPU\fR، به نسخه به‌روزرسانی‌شده‌ای از درایور amdkfd (amdgpu) نیاز است\&. .RE .SH "گزینه‌ها (OPTIONS)" .sp پارامترهای اختیاری را می‌توان پیش از اجرای دستور criu به‌عنوان متغیرهای محیطی ارسال کرد\&. .PP \fBKFD_FW_VER_CHECK\fR .RS 4 فعال یا غیرفعال کردن بررسی نسخه سفت‌افزار (فِرم‌ور)\&. در صورت فعال بودن، نسخه سفت‌افزار روی GPU بازیابی‌شده باید بزرگ‌تر یا مساوی نسخه سفت‌افزار روی GPU ثبت‌وضعیت‌شده باشد\&. پیش‌فرض: فعال (Enabled) .sp .if n \{\ .RS 4 .\} .fam C .ps -1 .nf .BB lightgray مثال: KFD_FW_VER_CHECK=0 .EB lightgray .fi .fam .ps +1 .if n \{\ .RE .\} .RE .PP \fBKFD_SDMA_FW_VER_CHECK\fR .RS 4 فعال یا غیرفعال کردن بررسی نسخه سفت‌افزار SDMA\&. در صورت فعال بودن، نسخه سفت‌افزار SDMA روی GPU بازیابی‌شده باید بزرگ‌تر یا مساوی نسخه سفت‌افزار روی GPU ثبت‌وضعیت‌شده باشد\&. پیش‌فرض: فعال (Enabled) .sp .if n \{\ .RS 4 .\} .fam C .ps -1 .nf .BB lightgray مثال: KFD_SDMA_FW_VER_CHECK=0 .EB lightgray .fi .fam .ps +1 .if n \{\ .RE .\} .RE .PP \fBKFD_CACHES_COUNT_CHECK\fR .RS 4 فعال یا غیرفعال کردن بررسی تعداد حافظه‌های نهان (کش)\&. در صورت فعال بودن، تعداد حافظه‌های نهان در GPU بازیابی‌شده باید بزرگ‌تر یا مساوی تعداد حافظه‌های نهان در GPU ثبت‌وضعیت‌شده باشد\&. پیش‌فرض: فعال (Enabled) .sp .if n \{\ .RS 4 .\} .fam C .ps -1 .nf .BB lightgray مثال: KFD_CACHES_COUNT_CHECK=0 .EB lightgray .fi .fam .ps +1 .if n \{\ .RE .\} .RE .PP \fBKFD_NUM_GWS_CHECK\fR .RS 4 فعال یا غیرفعال کردن بررسی num_gws\&. در صورت فعال بودن، مقدار num_gws در GPU بازیابی‌شده باید بزرگ‌تر یا مساوی مقدار num_gws در GPU ثبت‌وضعیت‌شده باشد\&. پیش‌فرض: فعال (Enabled) .sp .if n \{\ .RS 4 .\} .fam C .ps -1 .nf .BB lightgray مثال: KFD_NUM_GWS_CHECK=0 .EB lightgray .fi .fam .ps +1 .if n \{\ .RE .\} .RE .PP \fBKFD_VRAM_SIZE_CHECK\fR .RS 4 فعال یا غیرفعال کردن بررسی اندازه VRAM\&. در صورت فعال بودن، اندازه VRAM در GPU بازیابی‌شده باید بزرگ‌تر یا مساوی اندازه VRAM در GPU ثبت‌وضعیت‌شده باشد\&. پیش‌فرض: فعال (Enabled) .sp .if n \{\ .RS 4 .\} .fam C .ps -1 .nf .BB lightgray مثال: KFD_VRAM_SIZE_CHECK=0 .EB lightgray .fi .fam .ps +1 .if n \{\ .RE .\} .RE .PP \fBKFD_NUMA_CHECK\fR .RS 4 فعال یا غیرفعال کردن بررسی ناحیه NUMA پردازنده (CPU)\&. در صورت فعال بودن، افزونه پردازنده‌های گرافیکی متعلق به یک ناحیه NUMA پردازنده را به همان ناحیه NUMA پردازنده بازیابی می‌کند\&. پیش‌فرض: فعال (Enabled) .sp .if n \{\ .RS 4 .\} .fam C .ps -1 .nf .BB lightgray مثال: KFD_NUMA_CHECK=1 .EB lightgray .fi .fam .ps +1 .if n \{\ .RE .\} .RE .PP \fBKFD_CAPABILITY_CHECK\fR .RS 4 فعال یا غیرفعال کردن بررسی قابلیت‌ها (capability)\&. در صورت فعال بودن، قابلیت‌های موجود در GPU بازیابی‌شده باید دقیقاً برابر با قابلیت‌های موجود در GPU ثبت‌وضعیت‌شده باشد\&. پیش‌فرض: فعال (Enabled) .sp .if n \{\ .RS 4 .\} .fam C .ps -1 .nf .BB lightgray مثال: KFD_CAPABILITY_CHECK=1 .EB lightgray .fi .fam .ps +1 .if n \{\ .RE .\} .RE .PP \fBKFD_MAX_BUFFER_SIZE\fR .RS 4 در برخی سیستم‌ها، اندازه VRAM ممکن است از اندازه رم (RAM) بیشتر باشد، بنابراین ممکن است بافرهای ذخیره (تخلیه) و بازیابی VRAM درون حافظه جا نشوند\&. برای اعمال محدودیت بر میزان حافظهٔ مصرفی افزونه، این متغیر را روی یک مقدار غیرصفر (بر حسب بایت) تنظیم کنید\&. پیش‌فرض: 0 (غیرفعال) .sp .if n \{\ .RS 4 .\} .fam C .ps -1 .nf .BB lightgray مثال: KFD_MAX_BUFFER_SIZE="2G" .EB lightgray .fi .fam .ps +1 .if n \{\ .RE .\} .RE .SH "نویسنده (AUTHOR)" .sp تیم AMDKFD\&. .SH "حق نشر (COPYRIGHT)" .sp حق نشر \(co 2020\-2021، شرکت Advanced Micro Devices, Inc\&. (AMD)