-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #27 from fallingmeteorite/main
新内容添加
- Loading branch information
Showing
9 changed files
with
527 additions
and
120 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
--- | ||
title: nvidia用户须知 | ||
--- | ||
# nvidia用户须知 | ||
|
||
正常使用即可 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,5 +1,5 @@ | ||
--- | ||
title: Linux / MacOS平台 | ||
title: 其他平台 | ||
--- | ||
# Linux/MacOS平台 | ||
以下为其他平台的部署方法。 | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.