当前位置: 首页 > news >正文

在 Visual Studio Code 中编译、调试和执行 Makefile 工程 llama2.c

在 Visual Studio Code 中编译、调试和执行 Makefile 工程 llama2.c

  • 1. Installing the extension (在 Visual Studio Code 中安装插件)
    • 1.1. Extensions for Visual Studio Code
    • 1.2. C/C++
      • 1.2.1. Pre-requisites
    • 1.3. Makefile Tools
  • 2. Configuring your project (配置项目)
    • 2.1. `/home/yongqiang/llm_work/llama2.c/`
    • 2.2. 创建工作区设置文件 `.vscode/settings.json`
    • 2.3. Makefile: Project Outline
  • 3. Debugging and running targets (调试并运行目标)
    • 3.1. 配置 `.vscode/settings.json` 文件中 `binaryArgs` 的运行参数
  • References

1. Installing the extension (在 Visual Studio Code 中安装插件)

1.1. Extensions for Visual Studio Code

https://marketplace.visualstudio.com/vscode

在这里插入图片描述

1.2. C/C++

C/C++ for Visual Studio Code

The C/C++ extension adds language support for C/C++ to Visual Studio Code, including editing (IntelliSense) and debugging features.

在这里插入图片描述

1.2.1. Pre-requisites

C++ is a compiled language meaning your program’s source code must be translated (compiled) before it can be run on your computer. VS Code is first and foremost an editor, and relies on command-line tools to do much of the development workflow. The C/C++ extension does not include a C++ compiler or debugger. You will need to install these tools or use those already installed on your computer.

  • C++ compiler pre-installed
  • C++ debugger pre-installed

Here is a list of compilers and architectures per platform officially supported by the extension.

PlatformCompilersArchitectures
WindowsMSVC, Clang, GCCx64, x86, arm64, arm
LinuxClang, GCCx64, x86, arm64, arm
macOSClang, GCCx64, x86, arm64

1.3. Makefile Tools

VS Code Makefile Tools

This extension provides IntelliSense configurations to the VS Code C/C++ Extension for Makefile projects. It also provides convenient commands to build, debug, and run your targets.

在这里插入图片描述

2. Configuring your project (配置项目)

2.1. /home/yongqiang/llm_work/llama2.c/

Help -> Welcome -> Open Folder

在这里插入图片描述

2.2. 创建工作区设置文件 .vscode/settings.json

Command Palette (Ctrl + Shift + P)

在这里插入图片描述

Preferences: Open Workspace Settings (JSON)

在这里插入图片描述

/home/yongqiang/llm_work/llama2.c/.vscode/settings.json

2.3. Makefile: Project Outline

  • Configuration: [Default]

Hover over Configuration and select the pencil icon to choose a configuration for your project.
将鼠标悬停在 Configuration 上并选择铅笔图标来为你的项目选择配置。

在这里插入图片描述

在这里插入图片描述

  • Build target: [rundebug]

Choose a Build target by selecting the pencil icon that appears on hover.
通过选择悬停时出现的铅笔图标来选择构建目标。

在这里插入图片描述

  • Launch target: [run]

在这里插入图片描述

  • Launch target: [runq]

在这里插入图片描述

  • Makefile: [/home/yongqiang/llm_work/llama2.c/Makefile]

在 VS Code 中使用快捷键 Ctrl + Shift + P,输入并选择 Makefile: Configure

在这里插入图片描述

The extension will activate when it finds a Makefile in your ${workspaceFolder}.

在这里插入图片描述

在这里插入图片描述

  • .vscode/settings.json
{"makefile.launchConfigurations": [{"cwd": "/home/yongqiang/llm_work/llama2.c","binaryPath": "/home/yongqiang/llm_work/llama2.c/run","binaryArgs": []},{"cwd": "/home/yongqiang/llm_work/llama2.c","binaryPath": "/home/yongqiang/llm_work/llama2.c/runq","binaryArgs": []}]
}

在这里插入图片描述

3. Debugging and running targets (调试并运行目标)

在这里插入图片描述

After setting the Build target, click the Build icon.

Makefile: Build the current target
在这里插入图片描述

Once the Launch target is set, select the Debug icon to start a debugging session.

Makefile: Debug the selected binary target
在这里插入图片描述

To run the program without debugging, select the Run in Terminal button.

Makefile: Run the selected binary target in the terminal
在这里插入图片描述

If you need to pass additional arguments to your targets, update the makefile.launchConfigurations by adding the binaryArgs property to the configuration.

(base) yongqiang@yongqiang:~/llm_work/llama2.c$ "/home/yongqiang/llm_work/llama2.c/run" 
Usage:   run <checkpoint> [options]
Example: run model.bin -n 256 -i "Once upon a time"
Options:-t <float>  temperature in [0,inf], default 1.0-p <float>  p value in top-p (nucleus) sampling in [0,1] default 0.9-s <int>    random seed, default time(NULL)-n <int>    number of steps to run for, default 256. 0 = max_seq_len-i <string> input prompt-z <string> optional path to custom tokenizer-m <string> mode: generate|chat, default: generate-y <string> (optional) system prompt in chat mode
(base) yongqiang@yongqiang:~/llm_work/llama2.c$ 

3.1. 配置 .vscode/settings.json 文件中 binaryArgs 的运行参数

If you need to pass additional arguments to your targets, update the makefile.launchConfigurations by adding the binaryArgs property to the configuration.

./run stories15M.bin -n 256 -i "Once upon a time"

/home/yongqiang/llm_work/llama2.c/.vscode/settings.json

{"makefile.launchConfigurations": [{"cwd": "/home/yongqiang/llm_work/llama2.c","binaryPath": "/home/yongqiang/llm_work/llama2.c/run","binaryArgs": ["stories15M.bin", "-n", "256", "-i", "\"Once upon a time\""]},{"cwd": "/home/yongqiang/llm_work/llama2.c","binaryPath": "/home/yongqiang/llm_work/llama2.c/runq","binaryArgs": []}]
}

在这里插入图片描述

(base) yongqiang@yongqiang:~/llm_work/llama2.c$ "/home/yongqiang/llm_work/llama2.c/run" stories15M.bin -n 256 -i "Once upon a time"
Once upon a time, there was a cute little cat named Fluffy. Fluffy loved to climb trees. One sunny day, Fluffy saw a big tree and wanted to climb it.
Fluffy started to climb the tree. It was not easy, but Fluffy did not give up. Fluffy used its muscles to help get to the top. When Fluffy got to the top, it was so much fun!
Fluffy was very happy. Fluffy learned that when you try and do big things, you can do anything. And that is how Fluffy's love for climbing trees made her very happy.
achieved tok/s: 25.695931
(base) yongqiang@yongqiang:~/llm_work/llama2.c$ 

References

[1] Yongqiang Cheng, https://yongqiang.blog.csdn.net/
[2] Makefile support in Visual Studio Code!, https://devblogs.microsoft.com/cppblog/now-announcing-makefile-support-in-visual-studio-code/

相关文章:

在 Visual Studio Code 中编译、调试和执行 Makefile 工程 llama2.c

在 Visual Studio Code 中编译、调试和执行 Makefile 工程 llama2.c 1. Installing the extension (在 Visual Studio Code 中安装插件)1.1. Extensions for Visual Studio Code1.2. C/C1.2.1. Pre-requisites 1.3. Makefile Tools 2. Configuring your project (配置项目)2.1.…...

python中math模块常用函数

文章目录 math模块简介各种三角函数反三角函数取整函数欧几里得距离绝对值最大公约数开根号幂阶乘函数 math模块简介 math模块是python标准库的一部分&#xff0c;提供了对于浮点数相关的数学运算&#xff0c;下面是常用的一些function 各种三角函数反三角函数 math.cos、ma…...

优化 Vue 3 开发体验:配置 Vite 使用 WebStorm 作为 Vue DevTools 的默认编辑器

优化 Vue 3 开发体验&#xff1a;配置 Vite 使用 WebStorm 替代 VS Code 作为 Vue DevTools 的默认编辑器 在 Vue 3 项目开发中&#xff0c;合理配置开发工具可以大大提升我们的工作效率。本文将介绍如何配置 Vite&#xff0c;使其在使用 Vue DevTools 时将默认编辑器从 VS Co…...

【C语言练习(9)—有一个正整数,求是几位数然后逆序打印】

C语言练习&#xff08;9&#xff09; 文章目录 C语言练习&#xff08;9&#xff09;前言题目题目解析结果总结 前言 主要到整数的取余(%)和整数的取商(/)&#xff0c;判断语句if…else if …else的使用 题目 给一个不多于3位的正整数&#xff0c;要求:一、求它是几位数&…...

热敏打印机的控制

首次接触热敏打印机&#xff0c;本来没有特别之处&#xff0c;花了大概十天时间完成一款猫学王热敏打印机&#xff0c;给到客户体验后&#xff0c;客户反馈说打字看起来不明显&#xff0c;打印照片有条纹&#xff0c;所以引起了我对于他的关注&#xff0c;几点不足之处需要优化…...

【closerAI ComfyUI】电商赋能,AI模特套图生产,各种姿势自定义,高度保持人物服饰场景一致性,摆拍街拍专用

closerAIGCcloserAI,一个深入探索前沿人工智能与AIGC领域的资讯平台,我们旨在让AIGC渗入我们的工作与生活中,让我们一起探索AIGC的无限可能性!aigc.douyoubuy.cn 【closerAI ComfyUI】电商赋能,AI模特套图生产,各种姿势自定义,高度保持人物服饰场景一致性,摆拍街拍专用…...

ARM学习(36)静态扫描规则学习以及工具使用

笔者来学习了解一下静态扫描以及其规则,并且亲身是实践一下对arm 架构的代码进行扫描。 1、静态扫描认识 静态扫描:对代码源文件按照一定的规则进行扫描,来发现一些潜在的问题或者风险,因为不涉及代码运行,所以其一般只是发现一些规范或则一些质量问题,当然这些可能存在潜…...

使用 Docker Compose 部署 Redis 主从与 Sentinel 高可用集群

文章目录 使用 Docker Compose 部署 Redis 主从与 Sentinel 高可用集群Redis 主从架构简介Redis Sentinel 简介配置文件1. 主节点配置 (redis-master.conf)2. 从节点配置 (redis-slave1.conf 和 redis-slave2.conf)redis-slave1.confredis-slave2.conf3. Sentinel 配置 (sentin…...

警惕!手动调整服务器时间可能引发的系统灾难

警惕&#xff01;手动调整服务器时间可能引发的系统灾难 1. 鉴权机制1.1 基于时间戳的签名验证1.2 基于会话的认证机制&#xff08;JWT、TOTP&#xff09; 2. 雪花算法生成 ID 的影响2.1 时间戳回拨导致 ID 冲突2.2 ID 顺序被打乱 3. 日志记录与审计3.1 日志顺序错误3.2 审计日…...

MySQL追梦旅途之性能优化

1、索引优化 索引可以显著加速查询操作&#xff0c;但过多或不适当的索引也会带来负面影响&#xff08;如增加写入开销&#xff09;。因此&#xff0c;选择合适的索引至关重要。 创建索引&#xff1a; 为经常用于WHERE子句、JOIN条件和ORDER BY排序的列创建索引。 CREATE I…...

【机器学习】【无监督学习——聚类】从零开始掌握聚类分析:探索数据背后的隐藏模式与应用实例

从零开始掌握聚类分析&#xff1a;探索数据背后的隐藏模式与应用实例 基本概念聚类分类聚类算法的评价指标&#xff08;1&#xff09;内部指标轮廓系数&#xff08;Silhouette Coefficient&#xff09;DB指数&#xff08;Davies-Bouldin Index&#xff09;Dunn指数 &#xff08…...

基于深度Q网络(Deep Q-Network,DQN)的机器人路径规划,可以自定义地图,MATLAB代码

深度Q网络&#xff08;Deep Q-Network&#xff0c;DQN&#xff09;是一种结合了深度学习和Q学习的强化学习算法&#xff0c;由DeepMind在2015年提出。 1. 算法介绍 DQN算法通过使用深度神经网络来近似Q值函数&#xff0c;解决了传统Q-learning在处理具有大量状态和动作的复杂…...

Python-从文件中读取数据-Sat-Sun

10.1 文件读取数据可以整个文件读取&#xff0c;也可以逐行读取。 首先在保存有.py文件的文件夹里创建一个pi_digist.txt文件&#xff0c;文件内容是 3.14 9265 3589执行程序 file_reader.py with open(pi_digist.txt) as file_object: #接受文件名参数&#xff0c;在程序所…...

测试工程师的职业规划

测试人员在管理上的发展 基层测试管理者&#xff1a;测试组长 工作内容&#xff1a;安排小组工作&#xff0c;提升小组成员测试能力&#xff0c;负责重要的测试工作。 负责对象&#xff1a;版本&#xff0c;项目 中层测试管理者&#xff1a;测试经理 负责对象&#xff1…...

使用 Puppeteer 快速上手 Node.js 爬虫

使用 Puppeteer 库通过自动化浏览器来访问百度图片搜索&#xff0c;并在搜索结果中下载图片。代码分为两部分&#xff1a; 自动化浏览器任务&#xff1a;使用 Puppeteer 浏览百度图片搜索并获取图片 URL。图片下载&#xff1a;检查图片 URL 类型&#xff08;base64 或 URL&…...

浏览器的跨域问题与解决方案

浏览器的跨域问题与解决方案 浏览器的跨域问题源于同源策略&#xff08;Same-Origin Policy&#xff09;这一安全机制。同源策略要求两个页面具有相同的协议、域名和端口号&#xff0c;才能相互访问资源和数据。这一机制旨在防止恶意网站执行跨站脚本攻击&#xff0c;从而保护…...

MyBatis一二级缓存的区别?

大家好&#xff0c;我是锋哥。今天分享关于【MyBatis一二级缓存的区别&#xff1f;】面试题。希望对大家有帮助&#xff1b; MyBatis一二级缓存的区别&#xff1f; 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 MyBatis 的缓存机制分为 一级缓存 和 二级缓存&…...

[2024-12 CISCN 长城杯] Crypto

fffffhash 【也可以看这题&#xff0c;一样的&#xff1a;https://github.com/DownUnderCTF/Challenges_2023_Public/blob/main/crypto/fnv/solve/solution_joseph_LLL.sage】 题目描述&#xff1a; import os from Crypto.Util.number import * def giaogiao(hex_string):b…...

pytorch bilstm crf的教程,注意 这里不支持批处理,要支持批处理 用torchcrf这个。

### Bi-LSTM Conditional Random Field ### pytorch tutorials https://pytorch.org/tutorials/beginner/nlp/advanced_tutorial.html ### 模型主要结构&#xff1a; ![title](sources/bilstm.png) pytorch bilstm crf的教程&#xff0c;注意 这里不支持批处理 Python version…...

Python毕业设计选题:基于django+vue的疫情数据可视化分析系统

开发语言&#xff1a;Python框架&#xff1a;djangoPython版本&#xff1a;python3.7.7数据库&#xff1a;mysql 5.7数据库工具&#xff1a;Navicat11开发软件&#xff1a;PyCharm 系统展示 管理员登录 管理员功能界面 用户管理 员工管理 疫情信息管理 检测预约管理 检测结果…...

OpenClaw部署指南:2026年百度云部署OpenClaw、配置百炼API、集成Skill、接入微信/QQ/飞书/钉钉步骤

OpenClaw部署指南&#xff1a;2026年百度云部署OpenClaw、配置百炼API、集成Skill、接入微信/QQ/飞书/钉钉步骤。OpenClaw&#xff08;原Clawdbot&#xff09;作为2026年主流的AI自动化助理平台&#xff0c;可通过阿里云轻量服务器实现724小时稳定运行&#xff0c;并快速接入钉…...

终极Windows Defender禁用工具:一键提升系统性能的完整解决方案

终极Windows Defender禁用工具&#xff1a;一键提升系统性能的完整解决方案 【免费下载链接】windows-defender-remover A tool which is uses to remove Windows Defender in Windows 8.x, Windows 10 (every version) and Windows 11. 项目地址: https://gitcode.com/gh_mi…...

OpenClaw+千问3.5-27B创作助手:从大纲到公众号图文全自动生成

OpenClaw千问3.5-27B创作助手&#xff1a;从大纲到公众号图文全自动生成 1. 为什么需要全自动创作助手 作为一个技术博主&#xff0c;我每周都要产出2-3篇技术文章。最痛苦的环节不是写作本身&#xff0c;而是那些重复性的准备工作&#xff1a;构思大纲、寻找配图、调整格式、…...

[AI应用框架/Java] Spring AI 应用开发指南<>概述、快速入门

智能体时代的代码范式转移与 C# 的战略转型 传统的 C# 开发模式&#xff0c;即所谓的“工程导向型”开发&#xff0c;要求开发者创建一个复杂的项目结构&#xff0c;包括项目文件&#xff08;.csproj&#xff09;、解决方案文件&#xff08;.sln&#xff09;、属性设置以及依赖…...

expected_conditions(EC)与元素相关的常用方法

与元素&#xff08;Element&#xff09;相关的 expected_conditions&#xff0c;分为存在、可见、可点击、不可见/消失、属性/文本、选中状态等几类引用&#xff1a;from selenium.webdriver.support import expected_conditions as EC1. 元素存在&#xff08;Presence&#xf…...

低成本数据标注:OpenClaw+Phi-3-vision-128k-instruct半自动化标记工具

低成本数据标注&#xff1a;OpenClawPhi-3-vision-128k-instruct半自动化标记工具 1. 为什么我们需要半自动化数据标注 在计算机视觉项目中&#xff0c;数据标注往往是耗时最长、成本最高的环节。我曾经参与过一个商品识别项目&#xff0c;团队3个人花了整整两周时间才完成50…...

科技服务机构如何提升服务专业性与客户对接效率?

观点作者&#xff1a;科易网-国家科技成果转化&#xff08;厦门&#xff09;示范基地 在数智时代浪潮下&#xff0c;科技服务机构面临着前所未有的机遇与挑战。数据成为关键资源&#xff0c;重塑了创新主体间的关系&#xff0c;科技成果向产业应用的转化链条发生了根本变革。然…...

all-MiniLM-L6-v2详细步骤:Ollama模型量化部署(Q4_K_M)显存再降40%

all-MiniLM-L6-v2详细步骤&#xff1a;Ollama模型量化部署&#xff08;Q4_K_M&#xff09;显存再降40% 在资源受限的环境中部署高效的句子嵌入模型一直是开发者的痛点。all-MiniLM-L6-v2作为轻量级语义表示模型&#xff0c;虽然已经比标准BERT模型小了80%以上&#xff0c;但在…...

判断当前页面是否以「添加到主屏幕」应用形态启动 (快捷方式\APP、套壳包等启动)

这里写自定义目录标题判断当前页面是否以「添加到主屏幕」应用形态启动判断当前页面是否以「添加到主屏幕」应用形态启动 /*** 判断当前页面是否以「添加到主屏幕」应用形态启动* - iOS Safari: navigator.standalone* - 标准 PWA: display-mode 为 standalone/fullscreen/min…...

5个维度教你掌握游戏自动化与效率工具开发

5个维度教你掌握游戏自动化与效率工具开发 【免费下载链接】JX3Toy 一个自动化测试DPS的小工具 项目地址: https://gitcode.com/GitHub_Trending/jx/JX3Toy 在游戏开发与玩家体验优化领域&#xff0c;游戏脚本开发正成为提升效率的关键技术。本文将系统介绍一款开源项目…...