CUDA error 11 — cannot allocate big buffer for DAG — рішення помилки

52

Починаючи з березня 2016 року, багато бажаючі помайнить зіткнулися з помилкою запуску «CUDA error — cannot allocate big buffer for DAG», яка повідомляє, що не вдається виділити великий буфер для ДАГ файлу. Причина виниклої ситуації – особливий алгоритм майнінгу ефіру і подібних йому криптовалют. Згідно з новими принципами роботи, для функціонування систем необхідно мати відеокарту (AMD, NVIDIA), з об’ємом пам’яті понад 2 Гб. На даний момент, це мінімальний межа.

Як і з багатьма іншими подібними «нововведеннями», вирішити питання без заміни наявних GPU цілком реально. Наведені нижче інструкції можуть бути корисними не тільки для володарів видюха на 2 Гб, адже таке повідомлення з’являється і при використанні більш потужних карт.

Помилка CUDA error 11 — cannot allocate big buffer for DAG

Що таке DAG-файл і чому він росте?

DAG-файл являє собою блок даних, що займають мінімум 1 Гб пам’яті. Він використовується для знаходження конкретного рішення блоку в мережі блокчейн. Даний файл завантажується в відеокарту на початку майнінгу.

Примітно, що розмір DAG поступово збільшується. Згідно використовуваних алгоритмів, можна визначити розмір файлу залежно від поточної епохи. Під поняттям «епоха» мається на увазі цикл проходження 30 тис. блоків. Іншими словами, у кожного окремо взятого блоку свій розмір DAG, а певного обсягу цього файлу відповідає своя епоха.

CUDA error 11 — cannot allocate big buffer for DAG — рішення помилкиГенерація DAG файлу

Поступове зростання розміру DAG файлу сприяє тому, що його обсяг просто не може повністю завантажитися в пам’ять видяхи. Ця проблема актуальна для всіх криптовалют, використовують алгоритм видобутку Dagger Hashimoto. Зверніть увагу, що різні валюти знаходяться на різних епохах, а швидкість проходження одного циклу для кожної системи своя.

Як вирішити помилку CUDA Error 11?

Отже, помилка вказує на те, що виділити більше пам’яті не можна. Варто зауважити, що після завантаження виводиться ще одне повідомлення «CUDA error 11 — cannot write buffer for DAG», вказує на те, що запис буфера для DAG зупинена. Способів виправити помилку, насправді, досить багато. Давайте розглянемо найбільш популярні варіанти.

Для відеокарт на 2 Гб і менше

  • Відключити всі візуальні ефекти і визначити пріоритет – найкращу швидкодію в налаштуваннях комп’ютера. Для цього потрібно клацнути ПКМ на значку Комп’ютера, вибрати Властивості, Додаткові параметри системи.

    CUDA error 11 — cannot allocate big buffer for DAG — рішення помилкиВиберіть найкращу швидкодію

  • В цьому ж вікні перейти у вкладку Додатково і змінити файл підкачки до 16 Гб. Задати нове значення і перезавантажитися. Головне, стежте, що б у вас було як мінімум 20-25 Гб вільного простору.

    CUDA error 11 — cannot allocate big buffer for DAG — рішення помилкиЗадайте значення 1367-16400 Мб

  • Після перезапуску видалити з Автозавантаження і трея весь зайвий софт.
  • Прибрати з робочого столу усі файли і ярлики. Бажано відключити шпалери і плитку в меню Пуск (якщо маєте справу з Windows 10).
  • Очистити систему за допомогою чистячих утиліт, наприклад, CCleaner.
  • І, зрозуміло, перевірити систему на віруси, після чого вимкнути антивірус.
  • Таким чином ми отримуємо максимально продуктивну середу, яка споживає мінімум пам’яті видюхи і при цьому розширює її можливості. Зокрема, даний метод дозволяє впоратися з проблемою в більшості випадків. Можна спробувати перевстановити операційну систему, але для цих цілей можна використовувати полегшену версію системи.

    Для відеокарт понад 2 Гб

    Описані раніше дії можуть бути корисні і в цьому випадку. Якщо виключені проблеми апаратної частини, то для початку рекомендується перевстановити основні компоненти:

    • NetFramework;
    • CUDA;
    • OpenCL;
    • всі необхідні компоненти C++.

    Після цього варто перевірити дрова видюхи. Що тут треба зробити? Оновити драйвери GPU до останньої версії. Власникам відеокарт AMD можна спробувати відкотити дрова до версії 14.xx. Зверніть увагу, що при оновленні або відкату дров необхідно використовувати «чисту установку». Для видалення встановлених дров застосовують Display Driver Uninstaller (DDU).

    CUDA error 11 — cannot allocate big buffer for DAG — рішення помилкиПрограма для видалення драйверів Display Driver Uninstaller

    Прописати в консолі до запуску майнера такі команди:

    • setx GPU_FORCE_64BIT_PTR 0 – для серії Radeon RX не використовувати;
    • setx GPU_MAX_HEAP_SIZE 100;
    • setx GPU_USE_SYNC_OBJECTS 1;
    • setx GPU_MAX_ALLOC_PERCENT 100.

    Якщо вищезазначені процедури не допомогли, то потрібно шукати рішення, що підходить саме для вашої моделі GPU.

    Висновок

    У більшості випадків, саме збільшення файлу підкачки до 16 Гб повністю виправляє помилку «CUDA error — cannot allocate big buffer for DAG» при майнинге. Разом з тим варто зауважити, що від епохи до епохи вимоги до заліза будуть рости. Наприклад, розрахунки показують — до кінця 2019 року розмір DAG-а зросте до 3Гб. Якщо у вас є свої поради щодо оптимізації і виправлення подібних помилок — пишіть їх в коментарях.