英伟达官宣:CUDA 将不再支持 macOS

By 超神经

内容提要:或许,今后我们再也看不到搭载英伟达显卡的新款苹果电脑了。英伟达在最近的一份说明文档中宣布,将停止 CUDA 对 macOS 的驱动支持。这意味着,苹果与英伟达合作中的最后一根纽带也将断裂。

关键词:苹果  英伟达  CUDA

英伟达(NVIDIA)和苹果公司之间的合作,可能要彻底终结了。

在英伟达最近发布的说明文档中宣布,将停止对苹果 macOS 的驱动支持,CUDA 10.2 将是最后一个支持 macOS 的 CUDA 应用程序。

原文:CUDA 10.2 (Toolkit and NVIDIA driver) is the last release to support macOS for developing and running CUDA applications. Support for macOS will not be available starting with the next release of CUDA.

也就是说,以后的 CUDA 驱动,将不再支持苹果系设备。

CUDA 是英伟达专用的并行计算平台,也正是它的存在,利用 CUDA 可以让你的搭载 GPU 的电脑获得机器学习的基础环境,CUDA 也使得 Adobe Premiere AfterEffects 等程序能够获得更好的性能,甚至在某些大型游戏中也可以有更好的表现。

但是,苹果近几年推出的 Mac 系列产品无一例外都搭载了 AMD 的 GPU,由于 AMD 的显卡不支持 CUDA,这导致一些依赖 macOS 平台的机器学习、视频专业人士,都遇到了挺大的障碍。

苹果最新 16 英寸 MacBook Pro ,搭载了全新的

AMD Radeon Pro 5500M 和 5300M 移动显卡

不过,由于英伟达的 GPU 仍然具有一定的性能优势,所以也有一部分玩家或者机器学习会通过外接 NVIDIA GPU 的方式来发挥 Mac 的最大性能,或在黑苹果系统中使用英伟达显卡,英伟达因此也一直在为 macOS 的相关驱动程度进行维护。

 

英伟达和 Apple 十年的恩怨情仇

英伟达与苹果的长期关系中,这最后的一丝合作,可能很快就会结束。

我们很快将不会再在 macOS 上看到这个安装界面

据外媒推测,英伟达这一做法的原因与苹果近年来和 AMD 的紧密合作,而冷落英伟达有关。

近十年来,英伟达和苹果的关系也没有一直那么糟。

Macbook Pro 历史上是用过英伟达的独立显卡的,并且比 AMD 用的时间长:从 2007 的 Macbook Pro 8600M GT 开始,到 2013 年的 Macbook Pro GT 750M 系列。

之所以 Apple 开始与 AMD 合作,Apple 的官方说法是由于 AMD 的功耗更低。

Apple 的官方说法是由于 AMD 的功耗更低

但还有一个重要原因是 Apple 和 NVIDIA 主推的显卡通用计算标准有分歧,Apple 开发并主推 OpenCL,并且想要推进成为行业标准。

而英伟达则是一直力推自家的 CUDA,并且在驱动方面相当封闭,励志做核武器的英伟达,越发专心在机器学习方面的钻研。

此后,苹果无论笔记本还是台式机,一律只用 AMD 的 GPU,即使英伟达的显卡的性能更好、技术更先进,苹果也从未考虑过,因此两家关系更加恶化。

 

英伟达:报告!是 Apple 先动的手!

去年年底,苹果在 macOS 10.14 Mojave 版本中,就悄然停止了对于 CUDA 的支持,迫使 Adobe 创意套装等支持 CUDA 硬件加速的软件,不得不提醒用户,不要再开启此功能。

所以,也许因为苹果的「绝情」,让英伟达也做出了这样的选择。

业内人士评论,英伟达和苹果正式决裂

AMD 将成为幕后最大赢家

他们这样的做法,也意味着,苹果设备对一些机器学习开发者和动画专业人士的吸引力将大大降低。目前,英伟达已经为 GPU 硬件提供硬件加速光线追踪功能,这是机器学习、视频动画剪辑师和开发者所欢迎的工具,而英特尔的第一个硬件加速光线追踪技术的 XE 系列显卡,将在 2020 年 6 月才有希望发布。

此外,这个做法或许将迫使专业用户在 Mac 和 PC(或者说 AMD 和 NVIDIA)之间做出选择,毕竟 Mac 系列的 AMD GPU 截止目前,整体性能仍然落后于英伟达,即便是当前性能最强的 Mac Pro 所搭载的 Radeon Pro Vega II,也仍然为上一代的 GCN 架构,而非新时代的 RDNA 架构。

若考虑到对新技术的支持,很多 Apple 死忠用户虽然不会完全对 MacBook 丧失信心,但也都会考虑添置一台 PC 吧。

—— 完 ——

扫描二维码,加入 AI 讨论群

获得更多优质数据集

了解人工智能落地应用

关注顶会&论文

回复「读者」自动入群

更多精彩内容(点击图片阅读)

<think>嗯,用户之前询问过如何在联想小新Pro16上使用torchrun进行分布式训练,特别是参数的配置。现在用户的新问题是“电脑没使用英伟达”,也就是没有NVIDIA的GPU。我需要先理解用户的具体情况,然后给出相应的解决方案。 首先,用户可能没有独立显卡,或者使用的是AMD或集成显卡。因为PyTorch的分布式训练通常依赖CUDA,也就是NVIDIA的GPU支持。如果电脑没有英伟达显卡,用户可能无法使用GPU进行加速,只能使用CPU进行训练。这时候需要调整之前的参数配置,同时告知用户可能的性能影响。 接下来,用户之前的问题是关于分布式训练的配置,现在可能仍然想进行分布式训练,但只能使用CPU。这时候需要确认torchrun在CPU上的使用情况。虽然分布式训练主要用于多GPU或多节点,但在CPU上也是可行的,比如使用多进程来利用多核CPU。不过需要注意,CPU上的分布式训练效率可能不如GPU,需要权衡利弊。 用户可能的需求是,在没有NVIDIA GPU的情况下,如何配置torchrun的参数来进行分布式训练。之前的回答中提到了使用--nproc_per_node参数设置为GPU数量,但现在需要改为CPU的情况。需要指导用户如何设置进程数为CPU核心数,并说明相关注意事项。 另外,用户可能对CPU分布式训练的实际效果有疑问,比如是否值得这样做。需要解释CPU训练的局限性,比如速度慢,适合小规模模型或测试用途。同时提供替代方案,比如使用Google Colab的免费GPU资源,或者考虑升级硬件。 还需要检查之前的回答是否有错误或不完整的地方。例如,在之前的回答中提到,如果使用CPU训练,设置--nproc_per_node为CPU核心数,但实际中可能不需要那么多进程,因为过多的进程可能导致资源争用,反而降低效率。因此需要建议用户根据实际情况调整进程数,比如设置为物理核心数或更少。 此外,用户可能遇到端口冲突或其他配置问题,需要给出具体的命令示例和验证步骤,比如如何检查端口占用,如何调整进程数等。同时提醒用户,在没有NVIDIA GPU的情况下,无法使用CUDA相关的功能,需要确保代码中没有调用CUDA的部分,或者修改代码以使用CPU。 最后,总结用户的可能需求:在没有NVIDIA GPU的情况下,如何配置torchrun进行分布式CPU训练,注意事项,替代方案等。需要结构清晰,分步骤说明,并给出示例命令,帮助用户逐步解决问题。</think>当电脑未使用英伟达(NVIDIA)显卡时,意味着无法通过CUDA进行GPU加速训练。以下是针对纯CPU训练场景的配置方案和技术说明: --- ### 核心参数配置 ```bash torchrun \ --nproc_per_node=4 \ # 设置为CPU物理核心数(非线程数) --nnodes=1 \ --node_rank=0 \ --master_addr=127.0.0.1 \ --master_port=29500 \ train.py ``` --- ### 关键参数详解 1. **`--nproc_per_node`** - **定义**:每个节点启动的进程数 - **CPU设置原则**: - 建议设置为**物理核心数**(非超线程数) - 可通过以下命令查询: ```bash # Linux/MacOS sysctl -n hw.physicalcpu # Windows (PowerShell) Get-WmiObject Win32_Processor | Select-Object NumberOfCores ``` - **注意**:进程数超过核心数会导致资源争用,反而不利于性能 2. **`--nnodes` 与 `--node_rank`** - 单机训练固定为: $$ \text{--nnodes=1} \quad \text{--node_rank=0} $$ 3. **网络参数** - `--master_addr=127.0.0.1`(本地回环地址) - `--master_port` 建议选择29000-30000区间的空闲端口 --- ### 代码适配要求 需在训练代码中明确禁用GPU相关操作: ```python import torch # 强制使用CPU设备 device = torch.device("cpu") # 修改模型和数据加载 model = MyModel().to(device) inputs = inputs.to(device) labels = labels.to(device) ``` --- ### 性能评估与限制 | 场景 | 典型速度(ResNet50为例) | 内存消耗 | 适用场景 | |---------------------|--------------------------|----------|------------------------| | 单CPU进程 | 1x | 低 | 调试/小模型 | | 4进程CPU分布式 | 2.5-3x | 高 | 中型模型 | | NVIDIA RTX 3060 | 20-30x | 中 | 生产级训练 | **注**:实际加速比受模型并行化效率影响,Amdahl定律表明加速上限由串行代码比例决定 --- ### 替代方案建议 1. **云端GPU资源** - Google Colab:免费提供T4/K80 GPU - 阿里云PAI:按需付费的A100/V100实例 2. **模型轻量化** - 使用MobileNetV3等轻量级架构 - 应用知识蒸馏技术 3. **硬件升级方案** - 外接显卡坞(需设备支持Thunderbolt3/4接口) - 更换为带NVIDIA显卡的工作站 --- ### 验证流程 1. **硬件验证** ```python import torch print(torch.cuda.is_available()) # 应输出False ``` 2. **分布式功能测试** 建议添加以下调试代码: ```python import torch.distributed as dist dist.init_process_group(backend="gloo") # CPU必须使用gloo后端 print(f"Rank {dist.get_rank()}: 通信正常") ``` --- ### 常见问题排查 1. **OOM(内存不足)** - 降低`batch_size` - 使用梯度累积技巧 2. **进程通信失败** - 检查防火墙设置 - 确认端口未被占用: ```bash lsof -i :29500 # Linux/Mac netstat -ano | findstr 29500 # Windows ``` 3. **性能瓶颈分析** 使用`htop`/`任务管理器`观察: - 是否所有核心利用率均衡 - 是否存在磁盘I/O瓶颈 --- ### 扩展知识:CPU分布式训练原理 $$ \text{通信后端:} \quad \text{gloo} \quad \text{(Facebook开发的CPU优化后端)} $$ $$ \text{数据并行公式:} \quad \nabla W = \frac{1}{N}\sum_{i=1}^N \nabla W_i $$ 其中$N$为进程数,梯度求平均后同步更新 --- 请根据实际硬件规格调整进程数,建议首次运行时添加`--log_level=INFO`参数观察进程状态。纯CPU训练更适合作为功能验证手段,长期使用建议考虑GPU方案。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值