在 Windows 上安装和编译 llama.cpp

在 Windows 上安装和编译 llama.cpp

1.1 环境准备

1.1.1 安装mingw

下载地址:mingw-builds-binaries

在这里插入图片描述

解压后,将 bin 目录加入环境变量,例如:E:\dev\mingw64\bin

验证安装是否成功:

g++ -v

1.1.2 安装w64devkit

下载地址:w64devkit Releases

在这里插入图片描述

解压后,将 bin 目录添加到系统环境变量,例如:E:\dev\w64devkit\bin

1.1.3 安装 CMake

访问 CMake 官网,下载 Windows x64 ZIP(注意:不是安装包)。

在这里插入图片描述

解压后,将 bin 目录添加到环境变量,例如:E:\dev\cmake-4.0.3-windows-x86_64\bin

验证是否成功:

cmake --version

2.2 克隆 llama.cpp

git clone https://github.com/ggerganov/llama.cpp 

3.3 编译

3.3.1 使用 CMake 构建(新版)

说明:llama.cpp 官方已废弃原来的 Makefile 构建方式,推荐改用 CMake 构建方式 来编译模型工具和推理引擎。

编译 llama.cpp:

如果本地有安装Visual Studio,推荐使用 Visual Studio + CMake 进行构建(适用于 Windows 用户,兼容性最佳):
cd path/llama.cpp mkdir build cd build # 使用 Visual Studio 生成项目 cmake ..-G "Visual Studio 17 2022"-A x64 -DLLAMA_CURL=OFF # 或 使用 w64devkit和mingw 生成项目 cmake ..-G "MinGW Makefiles"-DLLAMA_CURL=OFF # 编译 Release 模式 cmake --build .--config Release 

如果一切正常,你会在 build/bin/Release 目录下看到生成的程序。

Read more

【C++详解】C++ 智能指针:使用场景、实现原理与内存泄漏防治

【C++详解】C++ 智能指针:使用场景、实现原理与内存泄漏防治

文章目录 * 一、智能指针的使⽤场景分析 * 二、RAII和智能指针的设计思路 * 三、C++标准库智能指针的使⽤ * 四、智能指针的原理 * shared_ptr源码 * 五、shared_ptr和weak_ptr * shared_ptr循环引⽤问题 * weak_ptr * 六、内存泄漏 * 什么是内存泄漏,内存泄漏的危害 * 如何避免内存泄漏 一、智能指针的使⽤场景分析 我们知道C++是是公认的高效编程语言,其中一点原因就是C++手动内存管理(new/delete),避免了很多高级语言(如 Java、Python)的自动内存管理(垃圾回收)带来的额外开销,这也是一把双刃剑,这对C++程序员的要求就会更高,因为手动内存管理很容易出现内存泄漏的问题,我们之前的说法是尽可能小心,但是有些场景无法避免会出现内存泄漏(或者处理起来很麻烦)

By Ne0inhk
【c++】c++的四种类型转换(static_cast,reinterpret_cast,const_cast,dynamic_cast)

【c++】c++的四种类型转换(static_cast,reinterpret_cast,const_cast,dynamic_cast)

小编个人主页详情<—请点击 小编个人gitee代码仓库<—请点击 c++系列专栏<—请点击 倘若命中无此运,孤身亦可登昆仑,送给屏幕面前的读者朋友们和小编自己! 目录 * 前言 * 一、c语言中的类型转换 * 隐式类型转换 * 强制类型转换 * const常变量的强制类型转换 * 总结 * 二、c++的四种类型转换 * static_cast * reinterpret_cast * const_cast * dynamic_cast * 三、RTTI * 总结 前言 【c++】特殊类的设计(不能拷贝的类,只能在堆/栈上创建对象的类,不能被继承的类,单例模式——饿汉模式、懒汉模式)——书接上文 详情请点击<—— 本文由小编为大家介绍——【c+

By Ne0inhk