پیام خطای clEnqueueNDRangeKernel(): CL_MEM_OBJECT_ALLOCATION_FAILURE مربوط به OpenCL (زبان محاسبات باز) است و نشان میدهد که یک شکست تخصیص حافظه هنگام تلاش برای اجرای یک هسته با استفاده از clEnqueueNDRangeKernel رخ داده است. این معمولا به این دلیل است که برنامه نمی تواند حافظه کافی را برای انجام عملیات مشخص شده به GPU یا CPU اختصاص دهد.
دلیل: هسته یا داده های عملیات آن به حافظه بیشتری نسبت به حافظه موجود GPU نیاز دارد.
راه حل: اندازه مجموعه داده را کاهش دهید یا با بستن سایر برنامه های کاربردی که از GPU استفاده می کنند ، حافظه را آزاد کنید.
علت: تکه تکه شدن حافظه ممکن است در طول زمان رخ دهد و تخصیص بلوک های بزرگ و پیوسته حافظه را دشوار کند.
راه حل: برنامه یا سیستم را مجدداً راه اندازی کنید تا تکه تکه شدن حافظه پاک شود.
دلیل: ممکن است برنامه سعی در تخصیص حافظه نادرست یا بیش از حد بزرگ داشته باشد.
راه حل: مشکلات تخصیص حافظه را در کد بررسی کنید ، مانند درخواست حافظه برای یک آرایه یا یک شی بسیار بزرگ.
علت: ممکن است آسیب پذیری یا محدودیت در درایور GPU وجود داشته باشد.
راه حل: اطمینان حاصل کنید که درایورهای GPU به روز هستند. اگر مشکل همچنان ادامه داشت ، سعی کنید به نسخه پایدار قبلی برگردید.
دلیل: پلتفرمهای مختلف OpenCL (مانند AMD ، NVIDIA ، Intel) ممکن است محدودیتهای متفاوتی در تخصیص حافظه داشته باشند.
راه حل: محدودیت های خاص پلتفرم خود را بررسی کنید و مطمئن شوید که برنامه شما در این محدودیت ها قرار دارد.
دلیل: اجرای چندین برنامه OpenCL یا سایر برنامه هایی که به شدت از GPU استفاده می کنند ممکن است منابع موجود را تمام کنند.
راه حل: تعداد برنامه ها یا وظایفی را که همزمان از GPU استفاده می کنند کاهش دهید.
اگر مشکل پس از امتحان روش فوق ادامه یابد ، می توانید اطلاعات متنی بیشتری در مورد رخ دادن خطا مانند نوع پردازنده گرافیکی مورد استفاده ، اندازه داده یا تغییرات اخیر در سیستم یا کد ارائه دهید. این امر امکان یافتن راه حل های هدفمند تری را فراهم می کند.