安装必备工具

  确保已安装以下软件的正确版本:

  CMake 3.24 或更高版本
  Go 1.22 或更高版本
  GCC 11.4.0 或更高版本

使用 Homebrew 安装这些工具(适用于macOS和Linux):

brew install go cmake gcc

可选:启用调试与详细日志
  构建时开启调试信息:

export CGO_CFLAGS="-g"

  运行时开启更多日志输出:

export OLLAMA_DEBUG=1

获取依赖库并构建原生LLM代码
使用Go的generate命令来获取依赖并构建本地代码:

go generate ./...

含义看这里:https://www.cnblogs.com/farwish/p/18164738

构建Ollama

构建Ollama主程序:

go build .

运行Ollama

构建完成后,执行Ollama:

./ollama

Linux平台特异性

Linux上的CUDA(NVIDIA)

  安装NVIDIA CUDA开发包和运行时环境。尽管某些Linux发行版可能已包含CUDA,但具体步骤可能因发行版而异,请查阅相应文档。

  构建脚本通常能自动识别CUDA路径,若路径非标准,可通过环境变量CUDA_LIB_DIR和CUDACXX指定CUDA库目录和nvcc编译器位置。自定义目标CUDA架构,可设置CMAKE_CUDA_ARCHITECTURES。

Linux上的ROCm(AMD)

  安装CLBlast和ROCm的开发包,以及CMake和Go。

  ROCm同样能被自动检测,但如有特殊路径,可通过ROCM_PATH和CLBlast_DIR环境变量指定ROCm安装目录和CLBlast目录。AMD GPU目标可通过AMDGPU_TARGETS自定义。

  ROCm运行时需提升权限,通常将用户加入render组或以root身份运行。

高级CPU设置

  默认情况下,go generate ./...会基于通用CPU家族和向量数学能力编译几个LLM库变体。

  若要为特定处理器定制CPU版本,可设置OLLAMA_CUSTOM_CPU_DEFS环境变量,传入llama.cpp编译标志。

Linux容器化构建

  如果安装了Docker,可以使用./scripts/build_linux.sh脚本构建Linux二进制文件,该脚本包含了CUDA和ROCm依赖。构建产物位于./dist目录下。

Windows平台

注意:Ollama的Windows构建仍在开发中。

  必须安装MSVC工具链、Go(1.22+)及MinGW(任一变体)搭配GCC。

  对于Windows CUDA支持,需在安装MSVC后安装NVIDIA CUDA。

  对于Windows ROCm支持,需安装AMD HIP SDK,并配置Strawberry Perl环境。

  最后,确保将MSVC附带的ninja.exe添加到系统路径中。

Tool:文字生成图片代码差异比较器HTML查错器Llama3在线

Link:https://www.cnblogs.com/farwish/p/18164772

Ollama开发指南的更多相关文章

  1. ASP.NET Aries 开源开发框架:开发指南(一)

    前言: 上周开源了Aries开发框架后,好多朋友都Download了源码,在运行过程里,有一些共性的问题会问到. 所以本篇打算写一下简单的开发指南,照顾一下不是太看的懂源码的同学,同时也会讲解一下框架 ...

  2. FreeMarker模板开发指南知识点梳理

    freemarker是什么? 有什么用? 怎么用? (问得好,这些都是我想知道的问题) freemarker是什么? FreeMarker 是一款 模板引擎: 即一种基于模板和要改变的数据, 并用来生 ...

  3. Jetty使用教程(四:21-22)—Jetty开发指南

    二十一.嵌入式开发 21.1 Jetty嵌入式开发HelloWorld 本章节将提供一些教程,通过Jetty API快速开发嵌入式代码 21.1.1 下载Jetty的jar包 Jetty目前已经把所有 ...

  4. JVM 平台上的各种语言的开发指南

    JVM 平台上的各种语言的开发指南 为什么我们需要如此多的JVM语言? 在2013年你可以有50中JVM语言的选择来用于你的下一个项目.尽管你可以说出一大打的名字,你会准备为你的下一个项目选择一种新的 ...

  5. iOS原生地图开发指南续——大头针与自定义标注

    iOS原生地图开发指南续——大头针与自定义标注 出自:http://www.sxt.cn/info-6042-u-7372.html 在上一篇博客中http://my.oschina.net/u/23 ...

  6. Angularjs中文版本开发指南发布

    从本人开始在写关于Angularjs的文章开始,也算是见证了Angularjs在国内慢慢的火起来,如今的Angularjs正式如日中天.想知道为什么Angularjs会这么火,请移步angularjs ...

  7. nodejs开发指南读后感

    nodejs开发指南读后感 阅读目录 使用nodejs创建http服务器; supervisor的使用及nodejs常见的调式代码命令了解; 了解Node核心模块; ejs模板引擎 Express 理 ...

  8. Libgdx 开发指南——目录

    本系列文档选译自libgdx github项目 wiki : https://github.com/libgdx/libgdx/wiki 由于关于Libgdx的中文文档非常稀缺,因此在这里对官方Wik ...

  9. jQuery MiniUI 开发指南+API组件参考手册

    jQuery MiniUI 开发指南 本文档将逐步的讲解jQuery MiniUI的方方面面,从此您将踏上jQuery MiniUI的深入探索之旅.                 1.Hello M ...

  10. 《CSS3专业网页开发指南》笔记

    书本:<CSS3专业网页开发指南>(the book of css3) Peter Gasston 著    李景媛 吴晓嘉 译 第1章: 1.box-sizing : IE8及以上版本 ...

随机推荐

  1. LOTO任意波形发生器SIG82模拟输出继电器吸合断开的信号波形用于算法调试

    LOTO任意波形发生器SIG82模拟输出继电器吸合断开的信号波形用于算法调试 继电器吸合的电流变化过程是如图这样的波形,0到2的时间大约为17毫秒,2到3的时间大约38毫秒. 批量继电器产品吸合是否满 ...

  2. Avalonia项目生成银河麒麟操作系统安装包

    1 在项目根目录添加xxx.desktop文件,文件内容: [Desktop Entry] Name=xxx Type=Application Exec=/usr/share/xxx/xxx Icon ...

  3. 【K8S】Kubernetes中暴露外部IP地址来访问集群中的应用

    本文是Kubernetes.io官方文档中介绍如何创建暴露外部IP地址的Kubernetes Service 对象. 学习目标 运行Hello World应用程序的五个实例. 创建一个暴露外部IP地址 ...

  4. ZYNQ学习系列之GPIO

    ZYNQ学习系列之GPIO 一.GPIO含义 general purpose IO ,通用目标的IO.所谓通用,就是采用常用的电压标准和电流标准的控制器IO接口,可以初步理解为开发板上的IO口.这种接 ...

  5. KingbaseES生成动态SQL

    1. 动态SQL 动态SQL在程序启动时会根据输入参数替换相应变量.使用动态SQL可以创建更强大和灵活的应用程序,但在编译时SQL语句的全文不确定,因此运行时编译会牺牲一些性能.动态SQL可以是代码或 ...

  6. KingbaseES V8R6 集群运维案例 -- 磁盘空间问题导致集群故障

    某商业银行生产系统KingbaseES读写分离集群主库出现故障,导致集群主备发生切换.客户要求说明具体的原因. KingbaseES读写分离集群基本信息: KingbaseES集群信息   操作系统 ...

  7. JDBC复习:创建MySQL数据表

    1 try { 2 conn=JDBCUtil.getConnection(); 3 preparedStatement = conn.prepareStatement(DROP_TABLE_1); ...

  8. Jetty的模块

    查看模块的列表,执行如下命令: java -jar $JETTY_HOME/start.jar --list-modules 启用模块,比如http模块,执行如下命令: java -jar $JETT ...

  9. OpenHarmony设备环境查询:Environment

      开发者如果需要应用程序运行的设备的环境参数,以此来作出不同的场景判断,比如多语言,暗黑模式等,需要用到Environment设备环境查询. Environment是ArkUI框架在应用程序启动时创 ...

  10. 80+产品正通过兼容性测试,OpenHarmony生态蓬勃发展

    4 月 25 日,开放原子开源基金会举办了 OpenAtom OpenHarmony(以下简称"OpenHarmony")技术日活动,OpenHarmony PMC 委员代表首次对 ...