▶️ ЗАБЕРИ СВОИ 8 ПОДАРКОВ 🎁 ПРИ СОЗДАНИИ СВОЕГО МАЙНКРАФТ СЕРВЕРА
Моды/C2ME OpenCL Acceleration Module
C2ME OpenCL Acceleration Module

C2ME OpenCL Acceleration Module

Экспериментальный аддон для C2ME, который ускоряет генерацию мира в Майнкрафт через OpenCL. Требует базовый мод C2ME и Java 25.

Оцените первым
174.5K
148

C2ME OpenCL Acceleration Module

C2ME OpenCL Acceleration Module - это экспериментальный аддон для мода C2ME, который перекладывает часть работы по генерации чанков на видеокарту через OpenCL. Если ты когда-нибудь ждал по 10 минут прогрузки нового региона на сервере или в одиночной игре - этот мод для тебя.

По сути, это попытка сделать генерацию мира аппаратно-ускоренной, используя GPU вместо CPU. В ванильном Майнкрафте генерация мира - это чисто процессорная задача, и на больших расстояниях прорисовки или при использовании чанк-генераторов вроде Chunky процессор начинает задыхаться. C2ME OpenCL Acceleration Module переносит самые тяжелые этапы (шум и биомы) на видеокарту, что дает прирост производительности до 80% и выше, если упираешься в CPU.

Важно: мод требует Java 25 для корректной работы, даже если ты играешь на версиях Майнкрафт ниже 26.1. Без этого он просто не запустится.

Что делает мод

На данный момент реализованы только два этапа генерации:

  • Noise stage - генерация шумов (основной ландшафт)
  • Biome stage - расстановка биомов

Остальные этапы пока работают на процессоре, но автор планирует расширять функционал.

Генерация мира полностью идентична ванильной, за одним исключением: границы биомов могут смещаться на 1-2 блока в очень редких случаях. Это связано с тем, что ванильная реализация зависит от порядка выполнения операций. По сути, мод так же "ванилен", как Noisium или его форки - у них та же проблема, хоть они и заявляют полную совместимость.

Совместимость с оборудованием

Мод работает не на всех видеокартах. Вот краткая сводка:

ПроизводительПоколениеДрайверWindowsLinuxMacOS
NVIDIAMaxwell и новееПроприетарный и OpenПоддерживаетсяЧастично¹Неизвестно
NVIDIAKeplerПроприетарныйНеизвестноПоддерживаетсяНеизвестно
IntelGen9, Gen9.5²Официальный³Частично⁴Частично⁵Неизвестно
IntelGen11-Gen12.5⁶Официальный³Не поддерживается¹²Не поддерживается¹²Неизвестно
IntelGen12.7, Xe2+⁷Официальный³Частично⁴Частично⁵Неизвестно
AMDRDNA1 и новее¹⁴Официальный⁸Поддерживается⁹ПоддерживаетсяНеизвестно
AMDGCNОфициальный¹⁰Не поддерживается¹³Не поддерживается¹³Неизвестно
QualcommЛюбыеОфициальныйНе поддерживается¹²Не поддерживается¹²N/A
AppleЛюбыеMacOS драйверыN/AN/AНе поддерживается¹²

Примечания:

  • ¹ Драйвер может зависать со временем. Ветка 535 LTS работает нормально.
  • ² Gen9 и Gen9.5 - это встроенная графика на процессорах 6-9 поколения Core и 10 поколения не G-серии.
  • ³ Официальный пакет драйверов на Windows. Для Linux: https://github.com/intel/compute-runtime
  • ⁴ GPU может падать на любой неванильной генерации мира.
  • ⁵ GPU может падать на сложных датапаках вроде Terralith.
  • ⁶ Gen11-Gen12.5 - встроенная графика на процессорах 10 поколения G-серии, 11-14 поколения Core, а также Arc DG1 и Arc A-серии.
  • ⁷ Gen12.7 - Meteor Lake и Arrow Lake (Core Ultra 100+ и Battlemage).
  • ⁸ Официальный пакет драйверов на Windows. ROCm runtime на Linux.
  • ⁹ Версия драйвера 26.5.1 всегда падает. Обновление до 26.6.1+ может тоже падать - рекомендуется DDU и чистая установка.
  • ¹⁰ Официальный пакет драйверов на Windows. AMDGPU-Pro runtime на Linux.
  • ¹¹ Mesa 26.1.x работает на RDNA3/4. Возможны проблемы с генерацией мира.
  • ¹² Нет поддержки FP64.
  • ¹³ Драйвер падает.
  • ¹⁴ Встроенная графика Ryzen 7000/9000 не включена - она слишком медленная.

Минимальные требования к железу

  • Работающий драйвер OpenCL 1.2+
  • Поддержка cl_khr_fp64 (FP64)

Желательно

  • OpenCL 3.0
  • cl_khr_device_uuid для стабильного определения устройства
  • CL_QUEUE_OUT_OF_ORDER_EXEC_MODE_ENABLE для оптимальной производительности (нет на AMD)
  • cl_khr_priority_hints и cl_khr_throttle_hints (только на Intel)
  • Неравномерные рабочие группы (нет на NVIDIA и некоторых AMD)

Ожидаемая производительность (Chunky)

Для 1200+ чанков/сек в ванильном оверворлде:

CPU: современные средние десктопы (9700X, 9800X3D, 245K) GPU:

  • NVIDIA GTX 1060 или выше
  • AMD Radeon RX 6500 XT или выше
  • Intel Arc B570 или выше

Для 2500+ чанков/сек:

CPU: флагманские десктопы (9950X, 9950X3D, 285K, 270K+) GPU:

  • NVIDIA GTX 1080 Ti или выше, RTX 4060 Ti или выше
  • AMD Radeon RX 7600 XT или выше
  • Intel Arc B570 или выше

Установка

Windows

  1. Установи Fabric
  2. Установи мод C2ME OpenCL Acceleration Module
  3. Готово

Linux

Большинство дистрибутивов Linux не имеют OpenCL из коробки - нужно устанавливать вручную.

Debian/Ubuntu:

sudo apt install ocl-icd-opencl-dev
# Для NVIDIA: sudo apt install nvidia-driver-full
# Для AMD: sudo apt install rocm-opencl-icd
# Для Intel: sudo apt install intel-opencl-icd (Gen12+) или intel-opencl-icd-legacy (старые)

Arch Linux:

sudo pacman -S ocl-icd opencl-nvidia # или rocm-opencl-runtime / intel-compute-runtime

Fedora:

sudo dnf install ocl-icd-devel
# NVIDIA: https://docs.nvidia.com/datacenter/tesla/driver-installation-guide/fedora.html
# AMD: sudo dnf install rocm-opencl
# Intel: sudo dnf install intel-opencl

Совместимость с модами и датапаками

Датапаки

Мод гарантированно работает с датапаками, которые можно загрузить в ванильный Майнкрафт. Например:

  • Stardust Labs (Terralith, Incedium)
  • Tectonic
  • CliffTree

Моды генерации мира

  • Моды, которые перепаковывают датапаки - работают.
  • Tectonic как мод - работает.
  • Моды с кастомными density functions НЕ работают (например, Enderscape, The Bumblezone).
  • Моды с полностью новым генератором мира НЕ работают (Big Globe).
  • Biomes O' Plenty - ломает расстановку биомов полностью.
  • TerraBlender - тоже ломает биомы.

Известные проблемы

  • Компиляция шейдеров может быть долгой, особенно с датапаками.
  • Дополнительное потребление памяти вне кучи для компиляции шейдеров.
  • PoCL с CPU бэкендом почти гарантированно падает - удали его полностью.
  • Датапаки, использующие minecraft:beardifier, могут иметь небольшие ошибки в форме ландшафта.

Рекомендации для максимальной производительности

Моды для ускорения:

  • ScalableLux - оптимизация освещения (узкое место при высокой скорости генерации)
  • Lithium - общая оптимизация сервера/клиента
  • FerriteCore - снижение потребления памяти
  • Structure Layout Optimizer - ускорение генерации структур
  • zFastNoise - ускорение шумов и поверхностей

JVM флаги:

-XX:+UseCompactObjectHeaders -Dchunky.maxWorkingCount=768
# Если больше 16ГБ памяти: -XX:+UseZGC, иначе: -XX:+UseG1GC -XX:G1HeapRegionSize=16M или -XX:+UseShenandoahGC -XX:ShenandoahGCMode=generational

В c2me.toml измени globalExecutorParallelism на количество потоков твоего CPU (например, globalExecutorParallelism = 16 для 16 потоков). Если нужна стабильность FPS и TPS, оставь пару потоков для системы. Также включи gcFreeChunkSerializer = true для дополнительного ускорения генерации чанков.

Часто задаваемые вопросы (FAQ)

Использует ли мод несколько GPU?

По умолчанию он распределяет нагрузку между всеми доступными OpenCL устройствами. Но обычно узким местом является CPU, так что мульти-GPU не даст прироста, если у тебя не связка слабых карт типа GT1030.

GPU почти не используется, а CPU загружен на 100%. Что происходит?

Это нормально для текущей версии - реализованы только шум и биомы. Остальные этапы пока на CPU. В будущем автор планирует добавить больше.

Как выбрать конкретный GPU?

В конфиге можно задать белый и черный списки устройств. UUID устройства можно найти в логах. AMD GPU отображаются как gfx что-то, а не маркетинговые названия.

Работает ли Voxy с этим?

Да. Чтобы сгенерировать дистанцию прорисовки для Voxy, установи Chunky, выполни /voxy import current, затем запусти задачу Chunky.

А Distant Horizons?

Короткий ответ: не рекомендуется. Используй Voxy вместо него. Длинный ответ: DH слишком медленный, чтобы увидеть преимущества этого мода. Если все же хочешь использовать DH, включи режим Internal Server / Full - Save Chunks. Но даже так улучшения может не быть, потому что генерация LoD - самое медленное звено.

Получаю OpenCL error [-1001]. Что это значит?

Загрузчик OpenCL ICD не может найти ни одного драйвера OpenCL. Проверь установку драйверов. Используй утилиту clinfo для диагностики.

Работает ли это на выделенных серверах?

Да, работает как на выделенных серверах, так и в одиночной игре, если установлены драйверы. На сервере поставляются бинарники только для linux x86_64, linux arm64 и windows x86_64.

Можно ли сделать откат к обычной генерации, если инициализация не удалась?

По умолчанию нет. Это можно включить через openclAccel.allowIncompatibilityFallback в конфиге.

Почему OpenCL, а не Vulkan?

Автор знаком с OpenCL, ему нужны нетипизированные указатели (в Vulkan появились только недавно), Vulkan требует версию 1.4 для этого (сильно сужает совместимость), а также Vulkan не гарантирует точность FP64 и правильное округление деления/квадратного корня.

Почему не CUDA? Или Rocm? Или Level0? Или Metal?

Автор не хочет привязываться к конкретному вендору.

У меня AMD RDNA, и краши до начала генерации мира. Почему?

Версия драйвера 26.5.1 всегда падает. Обновление до 26.6.1 может тоже падать. Рекомендуется DDU и чистая установка драйвера.

Часто задаваемые вопросы

Совместимость

Minecraft: Java Edition

26.3.x26.2.x26.1.x1.21.x

Платформы

Поддерживаемые окружения

Сервер

Ссылки

Создатели

Детали

Лицензия:
Опубликован:2 месяца назад
Обновлён:1 неделю назад
Главная