首页 > 其他分享 >apple m芯片的深度学习框架 MLX 安装

apple m芯片的深度学习框架 MLX 安装

时间:2024-09-14 15:38:50浏览次数:10  
标签:CMAKE apple LEVEL 芯片 构建 BUILD MLX PARALLEL

概述

二手淘到一个M1 MAX 64g 512g 的 apple studio 。看了一下专为它开发的框架 MLX,还有一堆例子。
在官方网站的帮助文件中,找到了安装方法。

官网安装

Python API

To build and install the MLX python library from source, first, clone MLX from its GitHub repo:

git clone [email protected]:ml-explore/mlx.git mlx && cd mlx

Then simply build and install MLX using pip:

CMAKE_BUILD_PARALLEL_LEVEL="" pip install .

For developing, install the package with development dependencies, and use an editable install:

CMAKE_BUILD_PARALLEL_LEVEL="" pip install -e ".[dev]"

Once the development dependencies are installed, you can build faster with:

CMAKE_BUILD_PARALLEL_LEVEL="" python setup.py build_ext -j --inplace

Run the tests with:

python -m unittest discover python/tests

Optional: Install stubs to enable auto completions and type checking from your IDE:

python setup.py generate_stubs

理解

这段文字和代码提供了如何从源码构建、安装和开发 MLX Python 库的详细步骤,包括测试和 IDE 支持。以下是逐步解读:

1. 克隆代码库并进入项目目录

git clone [email protected]:ml-explore/mlx.git mlx && cd mlx
  • 从 GitHub 仓库通过 SSH 克隆 MLX 的源码到本地 mlx 目录中。
  • cd mlx 进入下载后的项目目录,准备进行构建和安装。

2. 使用 pip 构建并安装 MLX

CMAKE_BUILD_PARALLEL_LEVEL="" pip install .
  • 使用 pip 安装当前目录(mlx)下的 MLX 库。
  • CMAKE_BUILD_PARALLEL_LEVEL="" 用于设置并行构建的级别。这里没有指定,所以默认按单线程构建。

3. 安装开发依赖项并使用可编辑安装

CMAKE_BUILD_PARALLEL_LEVEL="" pip install -e ".[dev]"
  • 该步骤为开发环境准备。-e 代表可编辑安装,意味着代码改动可以立刻生效,无需重新安装。
  • "."[dev] 表示除了主库外,还安装开发依赖项,比如测试工具、静态分析工具等。

4. 更快的本地构建

CMAKE_BUILD_PARALLEL_LEVEL="" python setup.py build_ext -j --inplace
  • 这个命令用于更快地编译和构建扩展模块。-j 表示并行构建,允许同时使用多个核心进行构建。--inplace 将编译的结果直接放在源码目录中,而不是单独生成一个构建目录。

5. 运行测试

python -m unittest discover python/tests
  • 使用 Python 自带的 unittest 模块运行测试。
  • discover 会自动查找 python/tests 目录下的所有测试用例并执行,确保库的功能符合预期。

6. 可选:安装 stubs 以支持 IDE 自动补全和类型检查

python setup.py generate_stubs
  • generate_stubs 生成 stubs 文件(类型提示信息),这对 IDE 很有用,可实现代码补全和类型检查等功能,使开发更加流畅。

总结:

  • 这段步骤涵盖了如何从源码安装 MLX 库、设置开发环境、进行快速本地构建、运行测试以及提升开发体验(如 IDE 的类型检查支持)。

问题

环境变量CMAKE_BUILD_PARALLEL_LEVEL="",为什么是空字符

解答

在上文中,环境变量 CMAKE_BUILD_PARALLEL_LEVEL="" 被设置为空字符,而没有指定具体的并行级别,可能的原因有以下几点:

1. 允许系统默认行为

  • CMAKE_BUILD_PARALLEL_LEVEL 是一个控制并行构建时进程数的环境变量。当它被设置为空字符时,相当于不主动指定该变量的值,从而让系统选择默认的行为。
  • 如果该变量为空,CMake 可能会使用单线程构建,或者根据 CMake 的版本或平台默认配置选择一个合适的并行度。

2. 避免覆盖用户设置

  • 在某些开发或构建环境中,用户可能已经全局设置了 CMAKE_BUILD_PARALLEL_LEVEL,并且希望使用他们自己的设置。
  • 在这种情况下,明确设置 CMAKE_BUILD_PARALLEL_LEVEL="" 可以避免脚本覆盖用户自己定义的并行级别,确保用户的本地配置不被干扰。

3. 避免潜在构建问题

  • 并行构建在某些系统或项目中可能会引起编译错误或资源冲突。通过不指定并行构建(即留空),可以避免此类问题,特别是在开发环境不确定或项目代码未完全优化的情况下。
  • 这样做可以确保即使并行构建存在风险,也不会因为并行设置而引发不可预见的构建问题。

4. 为开发者提供灵活性

  • 如果你是开发者,设置空字符允许你根据具体情况灵活地决定是否要指定并行级别,或者使用其他方式(如命令行参数)来决定构建的并行度。这种情况下,设置空字符相当于不强制要求某个并行级别。

5. 兼容性考虑

  • 某些平台可能对并行构建支持有限,或者配置的资源不足。在这些情况下,留空可能是为了保证跨平台的构建兼容性,不强制使用并行构建。

总结:

  • 设置 CMAKE_BUILD_PARALLEL_LEVEL="" 是为了确保构建脚本不强制要求并行构建,允许系统默认行为,同时避免潜在的并行构建问题。这种做法为不同开发者提供了更灵活的选择,并且能更好地适应不同的开发环境。

标签:CMAKE,apple,LEVEL,芯片,构建,BUILD,MLX,PARALLEL
From: https://www.cnblogs.com/litifeng/p/18414126

相关文章

  • 75V摄影灯影视灯IC-H5228 LED升降压恒流芯片 支持9V12V24V18V24V30V36V40V52V60V72V方
    H5228LED升降压恒流芯片:照明解决方案的新选择在LED照明领域,寻找一款性能好、功能恒流驱动芯片一直是工程师们的追求。今天,我们要为大家介绍的H5228LED升降压恒流芯片,就是这样一款能够满足多种应用需求的产品。一、产品概述H5228是一款调光特性良好、无频闪的LED恒流驱动器。它支......
  • OM6626低功耗国产蓝牙芯片对比进口NORDIC系列NRF52810/NRF52832
    OM6626是一款超低功耗的蓝牙soc主要特性:支持BLE5.3支持SIGMesh支持2.4G长包主频64Mhz,80KBRAM主要应用在esl电子价签,IoT模组、CGM、高报告率HID设备PUM特点1.71~3.6v供电电压1秒间隔广播平均电流:9uA;1秒间隔连接平均电流:7uA峰值电流:TX@0dB:4mA,RX@1Mbps:3mABLE特点支......
  • 存储芯片行业的封装类型
    存储芯片行业的封装类型存储芯片分类:随机存储器(RAM):这是易失性存储器,断电后存储的数据会丢失。它包括:动态随机存储器(DRAM):这是最常见的系统内存类型,用于与CPU直接交换数据。DRAM需要定期刷新以保持数据,因为它使用电容来存储信息。DRAM的常见类型包括:同步动态随机存储器......
  • 音频转换芯片DP7344兼容CS4344双通道24位DA转换器
    产品简介DP7344是一款完整的2通道输出数模转换芯片,内含插值滤波器、Multi-Bit数模转换器、输出模拟滤波器,并支持大部分的音频数据格式。DP7344基于一个带线性模拟低通滤波器的四阶Multi-BitΔ∑调制器,自动检测信号频率和主时钟频率,在2KHz和200KHz之间自动调节采样率。DP......
  • 必趣CB1核心板、H616主控linux验证IO模拟I2C驱动DS1307时钟芯片
    使用了#include<gpiod.h>内部库作为IO驱动`#ifndef __DS1307_Hdefine__DS1307_HdefineNUM_LEDS21//控制4个GPIO引脚defineCHIPNAME"gpiochip0"//GPIO芯片的名称defineWRITE_CMD 0x00defineREAD_CMD 0x01defineDEV_ADDR0xD0//......
  • 设计一款芯片-FPGA图像处理
    构建一个基于7nm技术的图像处理芯片,用于实时图像处理(包括降噪、去雾、边缘优化等功能),涉及到从无晶圆厂(fabless)设计到芯片生产的完整流程。这个过程包括多个关键步骤,每一步都对最终产品的性能和可靠性至关重要。以下是这一流程的概述:需求分析和预研●功能定义:明确芯片需......
  • 电子体温计芯片方案设计与开发
     电子体温计是一种以电子电路为核心的温度测量仪器,具有测量速度快、温度分辨率高、测量结果准确可靠、使用方便等特点。电子体温计主要用于检测人体体温,可分为接触式和非接触式两大类。传统的体温计是通过水银温度计来测温的,这种温度计的使用方法是:将体温计的水银柱末端浸入液体......
  • 电子体温计芯片方案设计与开发
    电子体温计是一种以电子电路为核心的温度测量仪器,具有测量速度快、温度分辨率高、测量结果准确可靠、使用方便等特点。电子体温计主要用于检测人体体温,可分为接触式和非接触式两大类。传统的体温计是通过水银温度计来测温的,这种温度计的使用方法是:将体温计的水银柱末端浸入液......
  • NVG040W语音芯片为制氧机带来人性化、便捷和安全
    在当今社会,家庭医疗设备和健康保健产品越来越受到人们的关注。制氧机作为其中的一种,为许多需要氧气治疗的人们提供了重要的帮助。然而,对于许多用户来说,如何正确操作和维护这些设备仍然是一个挑战。为此,NVG040W语音芯片为制氧机带来了人性化的语音提示和报警功能,使设备使用更加便捷......
  • 12V24V30V36V48V52V60V降压恒压芯片IC -H6246 电流简单,外围少,性价比高 仪表盘供电方案
    H6246降压恒压芯片:高效、可靠、多功能的电源管理解决方案在现代电子设备中,电源管理芯片扮演着至关重要的角色。今天,我们要为大家介绍一款性能出色、功能丰富的降压恒压芯片——H6246。这款芯片以其高效、可靠和多功能的特点,成为众多应用场景中的不错选择。高效性能:H6246支持宽电压......