在 Mac Mini M4 上本地跑大模型(Ollama + Llama + ComfyUI + Stable Diffusion | Flux)

在 Mac Mini M4 上本地跑大模型(Ollama + Llama + ComfyUI + Stable Diffusion | Flux)

Mac Mini M4 配备了苹果自家研发的 M1/M2/M4 芯片,具有强大的处理能力,能够支持本地跑一些大模型,尤其是在使用如 Ollama、Llama、ComfyUI 和 Stable Diffusion 这类 AI 相关工具时,性能表现非常好。本教程将指导你如何在 Mac Mini M4 上本地部署并运行这些大模型,涵盖从环境搭建到使用的全流程。


一、准备工作

  1. 确保系统更新
    确保你的 macOS 版本已更新到最新的版本(例如 macOS 13.0 以上),这将确保兼容性和性能。

安装 Homebrew(macOS 包管理工具)
Homebrew 是 macOS 上非常流行的包管理工具,它帮助你方便地安装各种软件。在终端中输入以下命令来安装 Homebrew(如果你尚未安装):

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

二、安装依赖项和环境配置

1. 安装 Python 和虚拟环境

对于大部分 AI 工具,你需要 Python 3.x 和虚拟环境来管理依赖关系。首先确保 Python 版本合适:

brew install [email protected] 

创建一个新的虚拟环境:

python3 -m venv ai-env source ai-env/bin/activate 
2. 安装 Ollama

Ollama 是一个可以直接加载多个大模型的框架,它支持本地运行大模型,且易于配置。安装 Ollama:

brew tap ollama/ollama brew install ollama 

安装完成后,可以通过以下命令启动 Ollama:

ollama start 
3. 安装 Llama

Llama 是一个非常强大的语言模型,可以用于各种自然语言处理任务。你可以通过以下命令安装 Llama:

克隆 Llama 的 GitHub 仓库:

git clone https://github.com/facebookresearch/llama.git cd llama python setup.py install

通过 pip 安装 Llama 依赖:

pip install llama-index 

Read more

FPGA Debug:PCIE XDMA没有Link up(驱动检测不到xilinx PCIE设备)使用LTSSM定位问题

FPGA Debug:PCIE XDMA没有Link up(驱动检测不到xilinx PCIE设备)使用LTSSM定位问题

问题现象: 与驱动联调:驱动无法扫描到Xilinx的PCIE设备 通过ila抓取pcie_link_up信号:发现link up一直为低 问题分析:         出现这种情况,在FPGA中搭建测试环境,使用XDMA+BRAM的形式,减少其它模块的影响,框架如下: 1 检查PCIE的时钟 时钟,必须使用原理图上的GT Ref 差分时钟,通过IBUFDSGTE转为单端时钟 2 检查PCIE 复位 复位:PCIE复位信号有要求--上电后,PCIE_RESTN信号需在电源稳定后延迟一段时间再释放,通常是100ms以上 而这100ms的时间,系统主要做以下的事情: * 电源稳定时间 * 参考时钟稳定时间 * PCIe IP核的复位和初始化时间 * 链路训练时间 // 典型的100ms时间分配: 0-10ms   : 电源稳定 (Power Stable) 10-20ms  : 参考时钟稳定 (Refclk Stable)   20-30ms  : 复位释放和PLL锁定 (Reset Release

By Ne0inhk
基于Xilinx的FPGA 7系列及以上在线升级程序实现与特性解析

基于Xilinx的FPGA 7系列及以上在线升级程序实现与特性解析

基于xilinx的FPGA在线升级程序,仅7系列以上支持 一、代码背景与模块定位 本文档解析的代码源自Xilinx 7系列Kintex-7 FPGA(型号xc7k325tffg900-2)的在线升级系统项目,具体对应dbghubsimnetlist.v文件,是Vivado 2020.2工具链生成的调试枢纽(dbghub)功能仿真网表。该模块本质是Xilinx xsdbmv300xsdbm IP核的封装实现,核心作用是为FPGA在线升级过程提供标准化调试接口,承担外部调试工具与FPGA内部逻辑的信号交互、数据转发及状态监控功能,是连接“调试工具-PCIe控制器-MT25Q闪存”的关键枢纽,也是在线升级系统中故障排查、进度监控、指令下发的底层支撑组件。 基于xilinx的FPGA在线升级程序,仅7系列以上支持 从代码生成信息可知,该模块通过write_verilog -force -mode funcsim命令生成,明确标注为“功能仿真网表”,不可用于综合或SDF注释时序仿真,仅用于验证调试链路的功能正确性,这一属性决定了代码的核心价值在于“功能逻辑呈现”而非“硬件资源映射”。

By Ne0inhk
机器人逆运动学:从SVD到IK算法

机器人逆运动学:从SVD到IK算法

引言 最近接触的机器人项目需要实现在特定约束下的逆运动学解算,而直接套用目前大多数开源IK算法(如KDL/TRAC IK等)或多或少都存在一些问题,因此需要自行实现迭代IK并添加特定的约束.然而,目前普遍教科书都倾向于介绍解析解IK,对数值IK更多是从网络博客收集整理获得,因此决定写下本文将这部分的知识作一个总结. 本文将从基础的线性代数SVD开始介绍,逐步过渡到数值IK的求解中,并以KDL的源码为例进一步剖析实际应用时的写法. SVD与最小二乘法 SVD是工程数学常用的工具,数学上看起来只是对矩阵做分解,但其在工程上可应用的地方很多,如奇异值和特征向量可以作为降维(PCA),除此以外分解后的矩阵有良好的性质方便求逆. 下面将详细介绍SVD如何用于求逆. 线性代数常见的一个问题: A x = b (1.1) Ax=b \tag{1.1} Ax=b(1.1) 求 x x x最直观的一个理解是对矩阵 A A A求逆,其解就是 A − 1 b A^

By Ne0inhk