'\" t .\" Man page generated from reStructuredText .\" by the Docutils 0.23 manpage writer. . . .nr rst2man-indent-level 0 . .de1 rstReportMargin \\$1 \\n[an-margin] level \\n[rst2man-indent-level] level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] - \\n[rst2man-indent0] \\n[rst2man-indent1] \\n[rst2man-indent2] .. .de1 INDENT .\" .rstReportMargin pre: . RS \\$1 . nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] . nr rst2man-indent-level +1 .\" .rstReportMargin post: .. .de UNINDENT . RE .\" indent \\n[an-margin] .\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] .nr rst2man-indent-level -1 .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. .TH "LLVM-OFFLOAD-BINARY" "1" "2026-07-15" "22" "LLVM" .SH "نام (NAME)" llvm-offload-binary \- بسته‌بند باینری آفلود LLVM .SH "خلاصه دستور (SYNOPSIS)" .sp \fBllvm\-offload\-binary\fP [\fIگزینه‌ها\fP] [\fIفایل‌های ورودی...\fP] .SH "توضیحات (DESCRIPTION)" .sp ابزار \fBllvm\-offload\-binary\fP ابزاری برای بسته‌بندی چندین فایل شیء (object file) مربوط به دستگاه (device) در قالب یک ظرف باینری واحد است. باینری حاصل را می‌توان در جدول بخش‌های میزبان تعبیه کرد تا یک باینری فربه (fat binary) شامل کدهای آفلودینگ (offloading) برای اهداف مختلف تشکیل شود. برعکس، این ابزار همچنین می‌تواند ایمیج‌های دستگاهی را که پیش‌تر بسته‌بندی شده‌اند استخراج کند. .sp قالب باینری با بایت‌های جادویی \fB0x10FF10AD\fP آغاز می‌شود که پس از آن نسخه و اندازه قرار دارند. هر باینری حاوی سرایند (header) اختصاصی خود است که به ابزارها امکان می‌دهد بخش‌های آفلودینگ را حتی در صورت ادغام توسط یک پیونددهنده (linker) پیدا کنند. هر مدخل آفلود شامل فراداده‌هایی مانند نوع ایمیج دستگاه، نوع سازنده (producer) و فراداده‌های رشته‌ای کلید\-مقدار است. چندین ایمیج آفلودینگ به یکدیگر متصل می‌شوند تا یک باینری فربه تشکیل شود. .SH "مثال‌ها (EXAMPLES)" .INDENT 0.0 .INDENT 3.5 .sp .EX # بسته‌بندی چندین ایمیج دستگاه در یک باینری فربه: $ llvm\-offload\-binary \-o out.bin \e \-\-image=file=input.o,triple=nvptx64,arch=sm_70 # استخراج یک ایمیج منطبق از یک باینری فربه: $ llvm\-offload\-binary in.bin \e \-\-image=file=output.o,triple=nvptx64,arch=sm_70 # استخراج و بایگانی ایمیج‌ها در یک کتابخانه ایستا: $ llvm\-offload\-binary in.bin \-\-archive \-o libdevice.a .EE .UNINDENT .UNINDENT .SH "گزینه‌ها (OPTIONS)" .INDENT 0.0 .TP .B \-\-archive هنگام استخراج از یک باینری ورودی، همهٔ ایمیج‌های استخراج‌شده را به جای فایل‌های جداگانه در یک بایگانی ایستا (static archive) می‌نویسد. .UNINDENT .INDENT 0.0 .TP .B \-\-image=<=,...> مجموعه‌ای از آرگومان‌های کلید\-مقدار دلخواه را برای توصیف یک ایمیج مشخص می‌کند. کلیدهای اختیاری پرکاربرد شامل \fBarch\fP (مانند \fBsm_70\fP برای CUDA) و \fBtriple\fP (مانند nvptx64\-nvidia\-cuda) هستند. .UNINDENT .INDENT 0.0 .TP .B \-o خروجی را در می‌نویسد. هنگام بسته‌بندی، این گزینه نام فایل باینری فربه را تعیین می‌کند. هنگام استخراج، مقصد فایل خروجی یا بایگانی را مشخص می‌کند. .UNINDENT .INDENT 0.0 .TP .B \-\-help, \-h گزینه‌های موجود را نمایش می‌دهد. برای نمایش گزینه‌های پنهان از \fB\-\-help\-hidden\fP استفاده کنید. .UNINDENT .INDENT 0.0 .TP .B \-\-help\-list فهرستی از تمام گزینه‌ها را نمایش می‌دهد. برای نمایش گزینه‌های پنهان از \fB\-\-help\-list\-hidden\fP استفاده کنید. .UNINDENT .INDENT 0.0 .TP .B \-\-version نسخهٔ فایل اجرایی \fBllvm\-offload\-binary\fP را نمایش می‌دهد. .UNINDENT .INDENT 0.0 .TP .B @ گزینه‌های خط فرمان را از فایل پاسخ \fI\fP\& می‌خواند. .UNINDENT .SH "قالب باینری (BINARY FORMAT)" .sp قالب باینری با بایت‌های جادویی \fB0x10FF10AD\fP و به دنبال آن یک شمارهٔ نسخه مشخص می‌شود. هر باینری ایجادشده شامل سرایند اختصاصی خود است. این ساختار به ابزارها اجازه می‌دهد تا بخش‌های آفلودینگ را حتی پس از انجام عملیات پیونددهنده مانند پیوند با قابلیت جابه‌جایی (relocatable linking) پیدا کنند. از نظر مفهومی، این قالب باینری یک سریال‌سازی از یک نگاشت رشته‌ای و یک بافر ایمیج است. .SH "سرایند باینری آفلود (Offloading Binary Header)" .TS box center; l|l|l. T{ نوع T} T{ شناسه T} T{ توضیحات T} _ T{ uint8_t T} T{ magic T} T{ بایت‌های جادویی قالب باینری (0x10FF10AD) T} _ T{ uint32_t T} T{ version T} T{ نسخهٔ این قالب (در حال حاضر نسخهٔ ۱) T} _ T{ uint64_t T} T{ size T} T{ اندازهٔ این باینری به بایت T} _ T{ uint64_t T} T{ entry offset T} T{ آفست مطلق مدخل‌های آفلود به بایت T} _ T{ uint64_t T} T{ entry size T} T{ اندازهٔ مدخل‌های آفلود به بایت T} .TE .sp هر مدخل آفلود، یک ایمیج بسته‌بندی‌شده را به همراه فراداده‌های مربوط به آن توصیف می‌کند..SH "جدول مدخل‌های برون‌سپاری (Offloading Entry Table)" .TS box center; l|l|l. T{ نوع T} T{ شناسه T} T{ توضیحات T} _ T{ uint16_t T} T{ image kind T} T{ نوع تصویر دستگاه (به‌عنوان مثال bc، cubin) T} _ T{ uint16_t T} T{ offload kind T} T{ تولیدکننده تصویر (به‌عنوان مثال openmp، cuda) T} _ T{ uint32_t T} T{ flags T} T{ پرچم‌های عمومی برای تصویر T} _ T{ uint64_t T} T{ string offset T} T{ آفست مطلق جدول فراداده‌های رشته‌ای T} _ T{ uint64_t T} T{ num strings T} T{ تعداد مدخل‌های رشته در جدول T} _ T{ uint64_t T} T{ image offset T} T{ آفست مطلق تصویر دستگاه به بایت T} _ T{ uint64_t T} T{ image size T} T{ اندازه تصویر دستگاه به بایت T} .TE .sp جدول مدخل‌ها هم به یک جدول رشته و هم به خودِ تصویر خام دستگاه ارجاع می‌دهد. جدول رشته فراداده‌های کلید\-مقدار دلخواه را فراهم می‌کند. .SH "مدخل رشته‌ای برون‌سپاری (Offloading String Entry)" .TS box center; l|l|l. T{ نوع T} T{ شناسه T} T{ توضیحات T} _ T{ uint64_t T} T{ key offset T} T{ آفست بایتی مطلق کلید در جدول رشته T} _ T{ uint64_t T} T{ value offset T} T{ آفست بایتی مطلق مقدار در جدول رشته T} .TE .sp جدول رشته مجموعه‌ای از رشته‌های خاتمه‌یافته با null است که در تصویر ذخیره شده‌اند. آفست‌ها اجازه می‌دهند مدخل‌های رشته به عنوان جفت‌های کلید\-مقدار تفسیر شوند، که فراداده‌های انعطاف‌پذیری مانند معماری یا target triple را ممکن می‌سازد. .sp مقادیر شمارشی (enumerated) برای \fBimage kind\fP و \fBoffload kind\fP عبارتند از: .SH "نوع تصویر (Image Kind)" .TS box center; l|l|l. T{ نام T} T{ مقدار T} T{ توضیحات T} _ T{ IMG_None T} T{ 0x00 T} T{ هیچ اطلاعات تصویری ارائه نشده است T} _ T{ IMG_Object T} T{ 0x01 T} T{ تصویر یک فایل شیء (object file) عمومی است T} _ T{ IMG_Bitcode T} T{ 0x02 T} T{ تصویر یک فایل بیت‌کد LLVM\-IR است T} _ T{ IMG_Cubin T} T{ 0x03 T} T{ تصویر یک فایل شیء CUDA است T} _ T{ IMG_Fatbinary T} T{ 0x04 T} T{ تصویر یک فایل fatbinary مربوط به CUDA است T} _ T{ IMG_PTX T} T{ 0x05 T} T{ تصویر یک فایل PTX مربوط به CUDA است T} .TE.SH "نوع برون‌سپاری (Offload Kind)" .TS box center; l|l|l. T{ نام T} T{ مقدار T} T{ توضیحات T} _ T{ OFK_None T} T{ 0x00 T} T{ هیچ اطلاعاتی برای برون‌سپاری ارائه نشده است T} _ T{ OFK_OpenMP T} T{ 0x01 T} T{ تولیدکننده برون‌سپاری OpenMP بوده است T} _ T{ OFK_CUDA T} T{ 0x02 T} T{ تولیدکننده CUDA بوده است T} _ T{ OFK_HIP T} T{ 0x03 T} T{ تولیدکننده HIP بوده است T} _ T{ OFK_SYCL T} T{ 0x04 T} T{ تولیدکننده SYCL بوده است T} .TE .SH "همچنین ببینید (SEE ALSO)" .sp \fBclang(1) \%\fP، \fBllvm\-objdump(1) \%\fP .SH "نویسندگان (AUTHORS)" نگه‌داری‌شده توسط تیم LLVM (https://llvm.org). .SH "کپی‌رایت و تکثیر (COPYRIGHT)" 2003-2026، پروژهٔ LLVM .\" End of generated man page.