安装必备工具

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

  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. FtpClient一定要setSotimeOut、setDataTimeout

    SotimeOut,简单说就是读取数据时阻塞链路的超时时间. /** * Enable/disable {@link SocketOptions#SO_TIMEOUT SO_TIMEOUT} * wi ...

  2. Redis高可用之战:主从架构

    ★ Redis24篇集合 1 主从模式介绍 在笔者的另外两篇文章 <Redis系列:RDB内存快照提供持久化能力>.<Redis稳定性之战:AOF日志支撑数据持久化>中,我们介 ...

  3. MobileNext:打破常规,依图逆向改造inverted residual block | ECCV 2020

    论文深入分析了inverted residual block的设计理念和缺点,提出更适合轻量级网络的sandglass block,基于该结构搭建的MobileNext.根据论文的实验结果,Mobil ...

  4. KingbaseES V8R6集群运维案例之---同一主机节点部署多个集群

    案例说明: 在同一主机环境,由于生产需要,需要部署两个集群:本案例详细描述了两个集群的部署过程. 注意:同一主机部署多个集群需要先部署securecmdd服务,节点之间通过securecmdd服务通讯 ...

  5. Chrome浏览器使用小技巧

    前言 Notes made by IT-Pupil-Poo-Poo-Cai(IT小学生蔡坨坨). The notes are for reference only. Personal blog:www ...

  6. 性能对比 Go、Python、Perl、Ruby、Rust、C/C++、PHP、Node.js、Java.. 等多编

    1. 有人说 Python 性能没那么 Low? 这个我用 pypy 2.7 确认了下,确实没那么差, 如果用 NumPy 或 其它版本 Python 的话,性能更快.但 pypy 还不完善,pypy ...

  7. 学习Source Generators之输出生成的文件

    上一篇文章学习了通过获取和解析swagger.json的内容,来生成API的请求响应类. 但是其中无法移动与编辑. 那么本文将介绍如何输出生成的文件. EmitCompilerGeneratedFil ...

  8. MySQL配置和常用命令

    目录 数据库配置 常用操作 项目地址:https://github.com/aijisjtu/Bot-Battle graph LR A[配置数据源] --> B[建立连接] B --> ...

  9. 到底什么是AQS?面试时你能说明白吗!

    写在开头 上篇文章写到CAS算法时,里面使用AtomicInteger举例说明,这个类在java.unit.concurrent.atomic包中,存储的都是一些原子类,除此之外,"java ...

  10. 使用 Nginx 在服务器上搭建一个 Xooxle 镜像站

    配置目标 期望能够通过 xooxle.example.com 访问 www.xooxle.com. 配置 DNS 配置地址:「DNS 解析 DNSPod」->「域名」->「解析」-> ...