`


پلتفرم ROCm

در این مقاله به شرح پلتفرم  ROCm می پردازیم

ROCm چیست؟ 

ROCm یک پشته open-source است که عمدتاً از نرم افزار open-source تشکیل شده و برای محاسبات واحد پردازش گرافیکی (GPU) طراحی شده است. ROCm شامل مجموعه ای از درایورها، ابزارهای توسعه و API است که برنامه نویسی GPU را از کرنل سطح پایین تا برنامه های کاربردی end-user قادر می سازد.

با ROCm، می‌توانید نرم‌افزار GPU خود را برای رفع نیازهای خاص خود سفارشی کنید. می‌توانید برنامه‌های خود را در یک اکوسیستم نرم‌افزاری رایگان، منبع باز، یکپارچه و امن توسعه دهید، آزمایش کنید و به کار ببرید. ROCm به ویژه برای محاسبات با کارایی بالا (HPC)، هوش مصنوعی (AI)، محاسبات علمی و طراحی به کمک رایانه (CAD) مناسب است.

ROCm توسط رابط محاسباتی ناهمگن برای حمل‌پذیری (HIP) پردازنده AMD، یک محیط برنامه‌نویسی C++ GPU نرم‌افزار متن‌باز و زمان اجرا متناظر آن پشتیبانی می‌شود. HIP به توسعه دهندگان ROCm اجازه می دهد تا با استقرار کد بر روی طیف وسیعی از پلتفرم ها، از پردازنده های گرافیکی اختصاصی بازی گرفته تا خوشه های HPC، برنامه های قابل حمل را روی پلتفرم های مختلف ایجاد کنند.

ROCm از مدل های برنامه نویسی مانند OpenMP و OpenCL پشتیبانی می کند و شامل تمام کامپایلرهای نرم افزار منبع باز، دیباگرها و کتابخانه ها می باشد. ROCm به طور کامل در چارچوب های یادگیری ماشین (ML) مانند PyTorch و TensorFlow ادغام (Integration) شده است.

پروژه های ROCm 

ROCm از درایورها، ابزارهای توسعه و API های زیر تشکیل شده است.

پروژه

شرح

AMD Compute Language Runtimes (CLR)

حاوی کد منبع برای زمان اجرا زبان های محاسباتی AMD: HIP و OpenCL

AOMP

یک ساخت اسکریپت شده از LLVM و نرم افزار پشتیبانی

Asynchronous Task and Memory Interface (ATMI)

یک چارچوب زمان اجرا برای مدیریت کار کارآمد در سیستم های CPU-GPU ناهمگن

Composable Kernel

کتابخانه ای که هدف آن ارائه یک مدل برنامه نویسی برای نوشتن هسته های حیاتی عملکرد برای بارهای کاری یادگیری ماشین در چندین معماری است.

Flang

یک کامپایلر خارج از درخت Fortran که LLVM را هدف قرار می دهد

Half-precision floating point library (half)

یک کتابخانه فقط سرصفحه ++C که یک نوع ممیز شناور نیمه دقیق 16 بیتی منطبق با IEEE 754 به همراه عملگرهای حسابی مربوطه، تبدیل نوع و توابع ریاضی رایج را ارائه می دهد.

HIP

پسوند زبان برنامه نویسی GPU AMD و زمان اجرای GPU

hipBLAS

یک کتابخانه BLAS-marshaling که از backendهای rocBLAS و cuBLAS پشتیبانی می کند

HIPCC

یک ابزار درایور کامپایلر که Clang یا NVCC را فراخوانی می‌کند و گزینه‌های شامل و کتابخانه مناسب را برای کامپایلر هدف و زیرساخت HIP ارسال می‌کند.

hipCUB

یک کتابخانه پوششی نازک فقط با سربرگ در بالای rocPRIM یا CUB که امکان انتقال پروژه با استفاده از کتابخانه CUB به لایه HIP را فراهم می کند.

hipFFT

یک کتابخانه سریع تبدیل فوریه (FFT) که از backendهای rocFFT یا CUFFT پشتیبانی می کند.

hipfort

یک کتابخانه رابط فرترن برای دسترسی به هسته های GPU

HIPIFY

مجموعه ای از ابزارها برای ترجمه کد منبع CUDA به HIP C++ قابل حمل

hipify-clang

ابزاری مبتنی بر Clang برای ترجمه منابع CUDA به منابع HIP

hipify-perl

یک اسکریپت مبتنی بر پرل تولید شده خودکار که کد منبع CUDA را به HIP C++ قابل حمل ترجمه می‌کند.

hipSOLVER

یک کتابخانه LAPACK-marshalling که از backend های rocSOLVER و cuSOLVER پشتیبانی می کند

hipSPARSE

یک کتابخانه SPARSE-marshalling که از backendهای rocSPARSE و cuSPARSE پشتیبانی می کند

hipTensor

کتابخانه C++ AMD برای تسریع تانسورهای اولیه بر اساس کتابخانه هسته قابل ترکیب

LLVM

یک جعبه ابزار برای ساخت کامپایلرها، بهینه سازها و محیط های زمان اجرا بسیار بهینه شده

MIGraphX

یک موتور استنتاج گراف که استنتاج مدل یادگیری ماشین را تسریع می کند

MIOpen

یک کتابخانه یادگیری عمیق منبع باز

MIOpenGEMM

یک API ضرب ماتریس عمومی OpenCL (GEMM) و مولد هسته

MIOpenTensile

رابط های قابل فراخوانی میزبان را برای کتابخانه Tensile فراهم می کند

MIVisionX

مجموعه ای از کتابخانه ها، ابزارها و برنامه های کاربردی جامع بینایی کامپیوتر و یادگیری ماشین

Radeon Compute Profiler (RCP)

یک ابزار تجزیه و تحلیل عملکرد که داده ها را از API زمان اجرا و GPU برای برنامه های OpenCL و ROCm/HSA جمع آوری می کند.

RCCL

یک کتابخانه مستقل که ارتباطات اولیه چند GPU و چند گره ای را ارائه می دهد

rocAL

یک کتابخانه تقویتی که برای رمزگشایی و پردازش تصاویر و ویدیوها طراحی شده است

ROCALUTION

یک کتابخانه جبر خطی پراکنده برای کاوش موازی سازی ریز دانه در زمان اجرا ROCm و زنجیره های ابزار

RocBandwidthTest

ویژگی های عملکرد کپی بافر و عملیات خواندن/نوشتن هسته را به تصویر می کشد

rocBLAS

پیاده سازی BLAS (در زبان برنامه نویسی HIP) در زمان اجرا و زنجیره ابزار ROCm

rocFFT

یک کتابخانه نرم افزاری برای محاسبه تبدیل فوریه سریع (FFT) که به زبان HIP نوشته شده است

ROCK-Kernel-Driver

یک درایور AMDGPU با KFD که توسط ROCm استفاده می شود

ROCmCC

یک کامپایلر مبتنی بر Clang/LLVM

ROCm cmake

مجموعه ای از ماژول های CMake برای کارهای رایج ساخت و توسعه

ROCm Data Center Tool

مدیریت را ساده می‌کند و چالش‌های زیرساختی کلیدی را در پردازنده‌های گرافیکی AMD در محیط‌های خوشه‌ای و مرکز داده برطرف می‌کند.

ROCm Debug Agent Library (ROCdebug-agent)

کتابخانه‌ای که می‌تواند وضعیت تمام جبهه‌های موج GPU AMD را که با ارسال سیگنال SIGQUIT به فرآیند در حین اجرای برنامه باعث خطای صف شده‌اند، چاپ کند.

ROCm Debugger (ROCgdb)

یک اشکال‌زدای سطح منبع برای لینوکس، بر اساس اشکال‌زدای گنو (GDB)

ROCdbgapi

کتابخانه API دیباگر ROCm

rocminfo

اطلاعات سیستم را گزارش می کند

ROCm SMI

کتابخانه AC برای لینوکس که یک رابط فضای کاربری برای برنامه ها برای نظارت و کنترل برنامه های GPU فراهم می کند

ROCm Validation Suite

ابزاری برای تشخیص و عیب‌یابی مشکلات رایجی که بر روی پردازنده‌های گرافیکی AMD در حال اجرا در یک محیط محاسباتی با کارایی بالا تأثیر می‌گذارند.

rocPRIM

یک کتابخانه فقط هدر برای HIP های اولیه موازی

ROCProfiler

یک ابزار پروفایل برای برنامه های کاربردی HIP

rocRAND

توابعی را ارائه می دهد که اعداد شبه تصادفی و شبه تصادفی تولید می کنند

ROCR-Runtime

رابط‌های API حالت کاربر و کتابخانه‌های لازم برای برنامه‌های میزبان برای راه‌اندازی هسته‌های محاسباتی روی عامل‌های هسته HSA ROCm موجود

rocSOLVER

اجرای روتین های LAPACK بر روی نرم افزار ROCm، پیاده سازی شده در زبان برنامه نویسی HIP و بهینه سازی شده برای آخرین GPU های گسسته AMD

rocSPARSE

یک رابط مشترک را نشان می دهد که BLAS را برای محاسبات پراکنده پیاده سازی شده در زمان اجرا ROCm و زنجیره های ابزار (در زبان برنامه نویسی HIP) ارائه می دهد.

rocThrust

کتابخانه الگوریتم موازی

ROCT-Thunk-Interface

رابط های API حالت کاربر که برای تعامل با درایور ROck استفاده می شود

ROCTracer

تماس های API در زمان اجرا را قطع می کند و فعالیت های ناهمزمان را ردیابی می کند

rocWMMA

یک کتابخانه ++C برای تسریع عملیات چند برابری-انباشتگی ماتریس با دقت مخلوط (MMA)

Tensile

ابزاری برای ایجاد کتابخانه‌های باطنی مبتنی بر معیار برای GEMM، مشکلات GEMM مانند و انقباضات تانسور کلی N بعدی

TransferBench

ابزاری برای محک زدن انتقال همزمان بین دستگاه های مشخص شده توسط کاربر (CPU/GPU)



پلتفرم ROCm
سحر کشاورزی 10 ژوئیهٔ 2024
Share this post
برچسب‌ها

 

`


پلتفرم Marketplacer
در این بلاگ به شرح Market Placer می پردازیم