Skip to content

Commit

Permalink
Merge pull request #27 from fallingmeteorite/main
Browse files Browse the repository at this point in the history
新内容添加
  • Loading branch information
licyk authored Jul 8, 2024
2 parents 228802d + 9e0b061 commit 886cbab
Show file tree
Hide file tree
Showing 9 changed files with 527 additions and 120 deletions.
66 changes: 66 additions & 0 deletions docs/guide/install/amd_info.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
---
title: amd用户须知
---
# amd用户须知

[amd的windows用户安装教程和启动错误解决方法](https://www.bilibili.com/video/BV1vK421a7Hf)

下面文章均取至[ZLUDA的readme文件](https://github.com/vosen/ZLUDA),文件经过翻译,原文点击点击高亮文字

# ZLUDA说明

如果系统中同时存在集成的 AMD GPU 和专用的 AMD GPU,则 ZLUDA 使用集成的 GPU。

这是底层 ROCm/HIP 运行时中的一个错误。您可以通过禁用集成 GPU 来解决此问题。

在 Windows 上,我们建议您使用环境变量环境变量(此处有更多内容)或在设备管理器中禁用它。HIP_VISIBLE_DEVICES=1

集成 GPU(经 Radeon 680M 测试)的工作方式有限。一些很少使用的 GPU 操作(abort、printf 等)会挂起或使应用程序崩溃。此外,性能库支持(cuBLAS、cuDNN 等)可能会受到限制,从而导致更复杂的应用程序无法运行。

ZLUDA 可以使用 AMD 服务器 GPU(通过 Instinct MI200 进行测试),但需要注意。

在服务器 GPU 上,ZLUDA 可以编译 CUDA GPU 代码以以下两种模式之一运行:

快速模式,速度更快,但会使异国情调(但正确)的 GPU 代码挂起。
慢速模式,这应该会使 GPU 代码更稳定,但可能会阻止某些应用程序在 ZLUDA 上运行。
默认情况下,ZLUDA使用快速模式。这是因为:

性能差异很大,快速模式可以快两倍。
在多个项目(SPECFEM3D、QUDA、CHroma、MILC、Kokkos、LAMMPS、OpenFOAM、XGBoost、NAMD、LAMMPS)中没有遇到可以跳闸快速模式的代码模式。
您可以使用环境变量在慢速模式下强制编译。ZLUDA_WAVE64_SLOW_MODE=1

这些都不适用于台式机和集成 GPU(RDNA 系列)

# 注意(第一次启动很慢)

使用ZLUDA的应用程序启动速度很慢。

在第一次启动时,ZLUDA需要为应用程序编译GPU代码。这是一次性成本,编译后的 GPU 代码缓存在 Windows 和 Linux 中或 Linux 上。
某些应用程序会在使用 GPU 代码时逐渐加载它。如果不希望这样做,您可以尝试设置环境变量。这取决于应用程序的编程方式,但它可能会强制在启动时加载(和编译)所有内核,无论它们是否被使用。%LOCALAPPDATA%$XDG_CACHE_HOME$HOME/.cacheCUDA_MODULE_LOADING=EAGER

运行 ZLUDA 的应用程序可能会产生略有不同的值

首先,ZLUDA忽略了内核中存在的一些浮点非正态和舍入模式信息。其次,对于CUDA中的某些近似(非IEEE 754)NVIDIA浮点运算,ZLUDA盲目使用近似AMD浮点运算。两者可能具有不同的精度。

CUDA 12+
使用 CUDA 12 构建并使用 Thrust 的应用程序会因 .LLVM ERROR: unsupported libcall legalization

这是一个 ROCm/HIP 错误。目前,使用 CUDA 12 之前版本构建的 CUDA 应用程序效果最好。使用 CUDA 12 和 CUDA 12 之前的推力构建也可能有效。

OptiX的
ZLUDA 为 Arnold 提供了最低限度的 OptiX 实现。有关详细信息,请参阅 Arnold 部分。

Windows
防病毒软件将 ZLUDA 标记为恶意软件。

ZLUDA 启动器 () 使用恶意软件使用的一些技术,但效果很好。 劫持该进程,并将原始 NVIDIA CUDA 库的所有使用重定向为使用 ZLUDA 的 CUDA。zluda.exezluda.exe

不要与使用反作弊的游戏一起使用。ZLUDA 不支持 CUDA 游戏工作负载(PhysX 或 DLSS),反作弊可能会误认为是恶意软件或作弊。zluda.exezluda.exe

启动应用程序时出现以下错误:zluda.exeError: OsError { function: "DetourCreateProcessWithDllsW", error_code: 740, message: "The requested operation requires elevation." }

您正在启动需要管理员权限的应用程序。尝试从管理员命令行启动。zluda.exezluda.exe

ZLUDA 对性能库(cuDNN、cuBLAS、cuSPARSE、cuFFT、OptiX、NCCL)提供有限的支持。目前,此支持仅适用于 Linux,在 Windows 上不可用。

ZLUDA 启动器 () 不支持 32 位进程。如果应用程序启动 32 位子进程,则 32 位进程及其 64 位子进程都无法使用 ZLUDA。这会影响 SiSoft Sandra。zluda.exea.exea.exea64.exe
105 changes: 105 additions & 0 deletions docs/guide/install/intel_info.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,105 @@
---
title: intel用户须知
---
# intel用户须知

[intel的windows用户安装教程](https://www.bilibili.com/video/BV1rH4y167hs)

下面文章均取至[intel-extension-for-pytorch](https://intel.github.io/intel-extension-for-pytorch/xpu/latest/tutorials/known_issues.html),文件经过翻译,原文点击点击高亮文字

# 故障排除

问题:当前平台不支持 FP64 数据类型。

原因:FP64 本身不受英特尔®数据中心 GPU Flex 系列和英特尔®锐炫™ A 系列显卡平台的支持。 如果您在该平台上运行任何 AI 工作负载并收到此错误消息,则表示内核需要不支持的 FP64 指令,并且执行已停止。

问题:运行时错误(如果之前)invalid device pointerimport horovod.torch as hvdimport intel_extension_for_pytorch

原因:英特尔®优化版 Horovod* 使用英特尔®扩展 for PyTorch* 提供的实用程序。不正确的导入顺序导致 Intel® Extension for PyTorch* 在 Intel® 之前卸载 在执行结束时对 Horovod* 进行优化,并触发此错误。

解决方案:在 .import intel_extension_for_pytorchimport horovod.torch as hvd

问题:dpcpp 设备数应大于零。

原因:如果您在 conda 环境中使用 Intel® Extension for PyTorch*,可能会遇到此错误。Conda 还附带了 libstdc++.so 动态库文件,该文件可能与附带的文件冲突 在操作系统中。

解决方案:将操作系统中的文件路径导出到环境变量。libstdc++.soLD_PRELOAD

问题:符号未定义导致。_GLIBCXX_USE_CXX11_ABI

ImportError: undefined symbol: _ZNK5torch8autograd4Node4nameB5cxx11Ev
原因:DPC++ 不支持,英特尔® PyTorch* 扩展始终使用 .当 PyTorch* 是 编译用 ._GLIBCXX_USE_CXX11_ABI=0_GLIBCXX_USE_CXX11_ABI=1_GLIBCXX_USE_CXX11_ABI=0

解决方案:使用支持 .我们建议使用预制车轮 在 [下载服务器](https:// developer.intel.com/ipex-whl-stable-xpu) 中以避免此问题。export GLIBCXX_USE_CXX11_ABI=1_GLIBCXX_USE_CXX11_ABI=1

问题:使用英特尔 MPI 时,AI 模型执行完成后终止错误。

原因:当 AI 模型(例如 RN50 训练)在英特尔 MPI 环境中执行完成时,这是一个随机问题。它不是用户友好的,因为模型执行不优雅地结束。此问题已在 PyTorch* 2.3 (#116312) 中修复。

解决方案:在模型脚本的清理阶段添加,如上所述 在 Distributed Data Parallel 入门中,英特尔®扩展 PyTorch* 扩展模块支持 PyTorch* 2.3 之前。dist.destroy_process_group()

问题:在英特尔®锐炫™ A 系列 GPU 上运行某些 AI 模型时。-997 runtime error

原因:有些实际上是内存不足错误。由于英特尔®锐炫™ A 系列 GPU 的设备内存少于英特尔®数据中心 GPU、Flex 系列 170 和英特尔®数据中心 GPU Max 系列,在其上运行某些 AI 模型可能会触发内存不足错误,并导致它们报告故障,例如最有可能的故障。这是意料之中的。内存使用优化是一项正在进行的工作,以允许英特尔®锐炫™ A 系列 GPU 支持更多 AI 模型。-997 runtime error-997 runtime error

问题:在 WSL2 上,从英特尔®锐炫™ A 系列 GPU 的源代码构建失败,而不会引发任何错误。

原因:您的系统可能没有足够的 RAM,因此调用了 Linux 内核的内存不足杀手。可以通过在 bash (WSL2 终端) 上运行来验证这一点。dmesg

解决方案:如果 OOM 杀手确实终止了生成过程,则可以尝试增加 WSL2 的交换大小,和/或减少与环境并行生成作业的数量 变量(默认情况下,它等于逻辑 CPU 内核数。因此,设置为 1 是一种非常保守的方法,会大大减慢速度)。MAX_JOBSMAX_JOBS

问题:某些工作负载在 WSL2 上一段时间后终止并显示错误。CL_DEVICE_NOT_FOUND

原因:此问题是由于 Windows 上的 TDR 功能造成的。

解决方案:尝试将 Windows 注册表中的 TDRDelay 增加到较大的值,例如 20(默认为 2 秒),然后重新启动。

问题:AI 模型收敛测试(>24 小时)结束后随机错误终止。

原因:当某些 AI 模型收敛测试执行完成时,这是一个随机问题。它不是用户友好的,因为模型执行不优雅地结束。

解决方案:收敛测试结束后终止进程,或者使用检查点将收敛测试分成几个阶段单独执行。

问题:在英特尔®数据中心 GPU Max 系列显卡上执行 LLM 推理工作负载时,存在随机不稳定问题,例如页面错误或原子访问冲突。

原因:LTS 驱动程序 803.29 上报告了此问题。根本原因正在调查中。

解决方案:使用主动滚动稳定释放驱动程序 775.20 或最新驱动程序版本来解决。

库依赖关系
问题:在没有 oneMKL 的情况下构建面向 PyTorch* 的英特尔®扩展模块时,找不到 oneMKL 库。

原因:当 PyTorch* 是使用 oneMKL 库构建的,而®英特尔 PyTorch* 扩展模块是在没有 MKL 库的情况下构建的,可能会出现此链接器问题。

解决方案:通过设置以下内容来解决问题:

export USE_ONEMKL=OFF
export MKL_DPCPP_ROOT=${HOME}/intel/oneapi/mkl/latest
然后全新构建面向 PyTorch* 的英特尔®扩展模块。

问题:未定义的符号:.英特尔 MKL 致命错误:无法加载或“libmkl_vml_def.so.2.mkl_lapack_dspevdlibmkl_vml_avx512.so.2

原因:当英特尔扩展 PyTorch* 是使用 oneMKL 库构建的,而 PyTorch* 不是使用任何 MKL 库构建时®,可能会出现此问题。oneMKL内核可能错误地进入CPU后端 并触发此问题。

解决方案:通过从 conda 安装 oneMKL 库来解决问题:

conda install mkl
conda install mkl-include
然后全新构建 PyTorch*

问题:OSError::无法打开共享对象文件:没有这样的文件或目录。libmkl_intel_lp64.so.2

原因:当系统中存在多个 MKL 库时,使用了错误的 MKL 库。

解决方案:通过以下方式预加载oneMKL:

export LD_PRELOAD=${MKL_DPCPP_ROOT}/lib/intel64/libmkl_intel_lp64.so.2:${MKL_DPCPP_ROOT}/lib/intel64/libmkl_intel_ilp64.so.2:${MKL_DPCPP_ROOT}/lib/intel64/libmkl_gnu_thread.so.2:${MKL_DPCPP_ROOT}/lib/intel64/libmkl_core.so.2:${MKL_DPCPP_ROOT}/lib/intel64/libmkl_sycl.so.2
如果继续看到其他共享对象文件的类似问题,请在 by 下添加相应的文件。请注意,如果系统上安装了多个 MKL 库,则库的后缀可能会更改(例如从 .1 更改为 .2)。${MKL_DPCPP_ROOT}/lib/intel64/LD_PRELOAD

单元测试
英特尔®数据中心 GPU Flex 系列 170 上的单元测试失败

以下单元测试在英特尔®数据中心 GPU Flex 系列 170 上失败,但相同的测试用例在英特尔®数据中心 GPU Max 系列上通过。故障的根本原因正在调查中。

test_weight_norm.py::TestNNMethod::test_weight_norm_differnt_type

6 changes: 6 additions & 0 deletions docs/guide/install/nvidia_info.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---
title: nvidia用户须知
---
# nvidia用户须知

正常使用即可
2 changes: 1 addition & 1 deletion docs/guide/install/other.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
title: Linux / MacOS平台
title: 其他平台
---
# Linux/MacOS平台
以下为其他平台的部署方法。
Expand Down
6 changes: 3 additions & 3 deletions docs/guide/requirement/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,11 +36,11 @@ title: 起步配置推荐


### AMD 核心
建议 **能使用 ZLUDA** 的显卡,如果您准备购买显卡,并不推荐 AMD 核心的显卡。
建议 **能使用 ZLUDA** 的显卡(新发布版显卡),如果您准备购买显卡,并不推荐 AMD 核心的显卡。


### Intel 核心
暂无,如果您准备购买显卡,并不推荐 Intel 核心的显卡。
Intel Arc A770,如果您准备购买显卡,并不推荐 Intel 核心的显卡。


### 显存要求
Expand All @@ -63,4 +63,4 @@ AMD / Intel:最低 12 GB,建议 16 GB 及以上。


## 网络
涉及到的部分网站在国内的访问性不佳,建议自备加速工具。
涉及到的部分网站在国内的访问性不佳,建议自备加速工具[Watt Toolkit](https://steampp.net/)
22 changes: 13 additions & 9 deletions mkdocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -164,17 +164,21 @@ markdown_extensions:

nav:
- "主页": index.md
- "绘画指南":
- "AI绘画部署与使用":
- guide/index.md
- "前期准备":
- "需求与准备":
- guide/requirement/index.md
- "部署":
- guide/install/index.md
- "Linux / MacOS 平台": guide/install/other.md
- "模型":
- "amd用户须知": guide/install/amd_info.md
- "nvidia用户须知": guide/install/nvidia_info.md
- "intel用户须知": guide/install/intel_info.md
- "其他平台": guide/install/other.md

- "模型指南":
- guide/model/index.md
- "模型下载": guide/model/download_model.md
- "使用":
- "功能使用":
- guide/use/index.md
- "文生图": guide/use/t2i.md
- "图生图": guide/use/i2i.md
Expand All @@ -200,17 +204,17 @@ nav:
- "内核": sd_launcher/ver_manager/kernel.md
- "扩展": sd_launcher/ver_manager/extension.md
- "安装新扩展": sd_launcher/ver_manager/install.md
- "其他功能":
- "实用功能":
- "疑难解答": sd_launcher/other/faq.md
- "模型管理": sd_launcher/other/model.md
- "控制台": sd_launcher/other/terminal.md
- "启动器设置": sd_launcher/other/setting.md
- sd_launcher/other/index.md
- "疑难解答":
- "使用疑难解答":
- help/index.md
- "绘世启动器": help/sd_launcher.md
- "SD WebUI": help/sd_webui.md
- "SD_WebUI": help/sd_webui.md
- "ComfyUI": help/comfyui.md
- "杂项": help/other.md
- "其他问题": help/other.md
- "附录": appendix.md
- "关于": about.md
Loading

0 comments on commit 886cbab

Please sign in to comment.