地形扩散分叉版(非官方)

地形扩散分叉版(非官方)

这是地形成扩散模组的移植版本,可在Linux和AMD GPU及Neofoge上运行。

地形扩散 MC Linux AMD 分支

通过 ROCm/MIGraphX 在 Linux 上为 AMD GPU 提供地形扩散 MC。

上游致谢

所有核心地形扩散 Minecraft 集成工作均来自原始项目及其贡献者:

此分支的存在是为了记录和打包面向 AMD/Linux 的适配工作。原始模组、模型集成以及大部分代码库的功劳应归于上游作者。

分支范围

此分支新增并记录了以下内容:

  • 通过 migraphx 选择 Linux AMD GPU 提供程序
  • 显式支持 ONNX Runtime 原生库覆盖
  • 专门的 linux-amd 构建变体
  • 经过测试的 ROCm/MIGraphX 设置说明

它不会取代上游项目。如果您需要原始项目及其常规发布版本,请使用上游仓库。

已验证设置

  • 操作系统:Kubuntu 26.04 LTS
  • 内核:Linux 7.0.0-27-generic
  • CPU:AMD Ryzen 7 9700X(8 核 / 16 线程)
  • GPU:AMD Radeon RX 7900 XTX(gfx1100)
  • 系统内存:64 GB
  • ROCm:7.2.0
  • Java:OpenJDK 21.0.11
  • Minecraft:1.21.1
  • NeoForge:21.1.238
  • ONNX Runtime:自定义 1.23.2 构建,带有 MIGraphX 执行提供程序

Minecraft 运行时日志在 256x256 区域生成期间确认了 Terrain Diffusion (MIGraphX)。项目构建目标为 NeoForge 21.1.229;经过测试的 NeoForge 21.1.238 运行时与该目标兼容。

构建矩阵

构建 支持 所需设置
Linux AMD Linux + AMD GPU + ROCm/MIGraphX 自定义启用 MIGraphX 的 ONNX Runtime 原生库
Windows 支持 DirectML 的 GPU 上的 Windows 除了捆绑的 DirectML 运行时外无需其他设置
CUDA 配备 NVIDIA GPU 的 Linux/Windows CUDA + cuDNN
CPU 任何机器 无,但速度非常慢

对于 Linux 上的 AMD,请使用此分支发布版中的 linux-amd jar,而不是 CPU jar,也不是上游发布工件。

要求

  • 带有 NeoForge 的 Minecraft
  • Java 21
  • 对于 Linux AMD 路径:
    • 受 ROCm/MIGraphX 支持的 AMD GPU
    • 可用的 ROCm 用户空间安装
    • 启用 MIGraphX 构建的自定义 ONNX Runtime 原生库

内存需求随世界规模和区块生成压力而变化。在测试机器上:

  • 推理使用的 GPU 显存:约 1.5-2 GB
  • 用于测试的 Minecraft RAM 分配:12 GB

快速开始

  1. 将 linux-amd jar 安装到 Minecraft 的 mods/ 文件夹中。
  2. 启动一次,以便模组创建其配置并下载模型。
  3. 编辑 config/terrain-diffusion-mc.properties。
  4. 设置:
inference.device=gpu
inference.provider=migraphx
inference.native_path=/absolute/path/to/onnxruntime-migraphx-native-directory

该目录包含:

  • libonnxruntime.so
  • libonnxruntime4j_jni.so
  • libonnxruntime_providers_migraphx.so
  • libonnxruntime_providers_shared.so

配置

模组配置文件为 config/terrain-diffusion-mc.properties。

此分支中相关的推理设置:

# "cpu", "gpu" 或 "auto"
inference.device=gpu

"auto", "migraphx", "rocm", "cuda" 或 "directml"

inference.provider=migraphx

自定义 ONNX Runtime 原生库的可选路径

inference.native_path=

在阶段之间卸载非活动模型

inference.offload_models=true

验证现有模型文件

validate_model=true

资源管理器 Web UI 端口

explorer.port=19801

区块生成区域大小(以方块为单位)

tile_size=256

世界规模说明

地形扩散世界暴露了从 1 到 6 的 World Scale 设置。

  • 2 是默认值,也是此代码库中最平衡的设置。
  • 较高的值并不意味着“更多细节”。它们以模型原生分辨率生成,然后更积极地进行上采样。
  • 高于 4 时,非常宽泛的平滑处理可能会产生大量以海洋为主的起始区域。这是当前缩放逻辑的预期结果,并非 AMD/Linux 特有的问题。

依赖项

此分支涉及的主要运行时/构建依赖项:

  • Minecraft 1.21.1
  • NeoForge 21.1.229
  • ONNX Runtime 1.23.2
  • ROCm/MIGraphX 7.2.x

此分支中的 Linux AMD 路径依赖于自定义的 ONNX Runtime Java/原生构建,因为标准的 Maven Java 工件并未为此工作流提供现成的 MIGraphX 包。

从源码构建

标准的上游变体仍然有效:

./gradlew build -PuseDml=true
./gradlew build -PuseCuda=true
./gradlew build -PuseCpu=true

此分支的 Linux AMD 构建:

./gradlew build -PuseMigraphx=true -PonnxRuntimeMigraphxVersion=1.23.2-migraphxfix

这需要有一个匹配的、打过补丁的 ONNX Runtime Java 工件可通过 mavenLocal() 获得。

Linux AMD 说明

日文安装指南:docs/INSTALL_JA.md。

有关 AMD/Linux 移植的详细说明,请参阅 docs/amd-linux-migraphx.md。

常见问题

没有可用的已配置 GPU 提供程序

这通常意味着以下情况之一不正确:

  • jar 不包含支持 MIGraphX 的 Java 绑定
  • inference.native_path 未指向自定义 ORT 原生库目录
  • 原生库目录缺少提供程序 .so 文件
  • ROCm/MIGraphX 未安装或无法在机器上加载

高世界规模下出现大量海洋起始区域

这是当前基于上采样的缩放系统的效果。如果您希望减少平滑处理并获得更紧凑的地形特征,请将 World Scale 降低回 2 或 3。

世界生成或模型加载期间内存不足

增加 Minecraft RAM 分配并保持适度的世界规模。模型文件本身很大,较高的缩放值会以可能仍然给内存和 CPU 带来压力的方式改变区块生成行为。