Undefined游侠
码龄10年
关注
提问 私信
  • 博客:41,464
    动态:20,258
    61,722
    总访问量
  • 90
    原创
  • 27,747
    排名
  • 390
    粉丝
  • 0
    铁粉
  • 学习成就
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:上海市
  • 加入CSDN时间: 2014-08-21
博客简介:

qq_19859865的博客

查看详细资料
  • 原力等级
    成就
    当前等级
    4
    当前总分
    760
    当月
    0
个人成就
  • 获得513次点赞
  • 内容获得6次评论
  • 获得521次收藏
创作历程
  • 68篇
    2024年
  • 22篇
    2023年
成就勋章
TA的专栏
  • 数据结构
    2篇
  • 学习笔记
    6篇
  • 论文阅读
    9篇
  • 日常工具
    2篇
  • 模型部署
    5篇
创作活动更多

AI大模型如何赋能电商行业,引领变革?

如何使用AI技术实现购物推荐、会员分类、商品定价等方面的创新应用?如何运用AI技术提高电商平台的销售效率和用户体验呢?欢迎分享您的看法

181人参与 去创作
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

ARM assembly 13: Memory allocation

今天我们来尝试分别通过C++,C和 ARMv7来实现动态内存分配。
原创
发布博客 2024.10.16 ·
309 阅读 ·
4 点赞 ·
0 评论 ·
8 收藏

TensorRT-LLM七日谈 Day5

在day2, 我们尝试了对于llama8B进行转换和推理,可惜最后因为OOM而失败,在day4,我们详细的过了一遍tinyllama的推理,值得注意的是,这两个模型的推理走的是不同的流程。llama8b需要显式的进行模型的转换,引擎的生成,而tinyllama则进行了隐式的执行。如果参考[1],也有明确的说明。目前模型的推理确实支持多种形式。
原创
发布博客 2024.10.15 ·
347 阅读 ·
5 点赞 ·
0 评论 ·
4 收藏

TensorRT-LLM七日谈 Day4

其中, 在model_loader()的调用中,实现了模型的加载和engine的构造。而在step_forward函数中,则实现了每次的step。在Day2 中,我们梳理了trt-llm对于TinyLLama的调用,在Day3,我们也熟悉了一下Trt-llm常规的三步流程。这里其实有个问题,在针对tiny-llama的部署中,其实没有显式的进行模型转换,那麽其推理接口中到底包含了什么?今天算是仔细过了一遍模型的生成,可以看到,其中包含了。其中,主要的时间都用于模型的构造了。最后完成了模型的推理。
原创
发布博客 2024.10.14 ·
380 阅读 ·
9 点赞 ·
0 评论 ·
5 收藏

TensorRT-LLM七日谈 Day3

今天主要是结合理论进一步熟悉TensorRT-LLM的内容从下面的分享可以看出,TensorRT-LLM是在TensorRT的基础上进行了进一步封装,提供拼batch,量化等推理加速实现方式。下面的图片更好的展示了TensorRT-LLM的流程,包含权重转换,构建Engine,以及推理,评估等内容。总结一下就是三步。不想看图的话,可以看看AI的总结,我放在附录中。下图也很好的展示的trt-llm推理的全流程。
原创
发布博客 2024.10.14 ·
963 阅读 ·
27 点赞 ·
0 评论 ·
24 收藏

TensorRT-LLM七日谈 Day2

其实,目前为止,我们对于tensorrt-llm 这个库就已经有基本的认知了,它通过python作为接口,但是底层还是依赖tensorrt,cuda闭源的高性能实现,如果查看tensorrt-llm 的源码,还可以看到pybind的文件夹,里面包含了python和cpp的一些接口的转换和交互。进一步观察package的内容,可以看到,它由多个python文件组成,此外,在libs中也包含多个.so文件。昨天卡在了环境配置上,经过一天的等待,pip基本完成后,我们基于链接1,继续配置环境。
原创
发布博客 2024.10.13 ·
448 阅读 ·
3 点赞 ·
0 评论 ·
4 收藏

ARM assembly 13: Fibonacci

在assembly 12中,我们实现了GCD,它通过recursice的方式来实现计算。今天我们来讲Fibonacci,它的Recursive相比于GCD会更加复杂,所以值得进一步讲解。首先,我们还是看看Fibonacci的传统实现,那就是首先,我们展示一下code base。
原创
发布博客 2024.10.13 ·
234 阅读 ·
6 点赞 ·
0 评论 ·
4 收藏

TensorRT-LLM七日谈 Day1

Flag利用7天时间熟悉tensort-llm的代码架构,cublas的使用方式以及flash attention的调优。项目链接。
原创
发布博客 2024.10.11 ·
360 阅读 ·
3 点赞 ·
0 评论 ·
2 收藏

ARM assembly 12: GCD(最大公约数)计算

基于gcd.s,我们可以看到,gcd函数的两个参数可以分别被传入到r0,r1寄存器中,然后,我们可以基于此实现base case,也就是上述代码中 b == 0的情况。在完成了recursive中参数的计算后,我们需要把它们分别传入r0,r1(现在它们在r1和r4).接下来,利用bl操作执行迭代操作。我们尝试在汇编中实现上述逻辑,没有什么难点,需要注意SDIV用于实现 signed integer division。基于下面的gcd.s文件,我们尝试实现gcd函数。在nums.txt中,我们可以看到。
原创
发布博客 2024.10.10 ·
350 阅读 ·
10 点赞 ·
0 评论 ·
3 收藏

ARM assembly: Lesson 10

今天,我们来看一下基于ARM汇编,如何实现函数的调用。
原创
发布博客 2024.10.02 ·
470 阅读 ·
4 点赞 ·
0 评论 ·
4 收藏

ARM assembly: lesson 11

在之前,我们提到,当函数的参数小于等于4个时,我们会把它存放于寄存器中,但是如果函数参数大于4个,我们就需要通过stack去进行参数的存储,这毫无疑问,将增加代码操作的复杂性,因为我们需要对于栈利用stack pointer进行控制。
原创
发布博客 2024.10.02 ·
549 阅读 ·
4 点赞 ·
0 评论 ·
9 收藏

ARM Assembly: Lesson 9 (for loops)

2. 构建一个判断条件,和两个分支,一个分支用于实现循环,一个分支用于处理终止情况,他们将指向两个label。为了将上述代码从C转换为汇编代码,我们需要。相关指令:branch, cmp。1. 利用一个寄存器存储i。
原创
发布博客 2024.10.01 ·
386 阅读 ·
2 点赞 ·
0 评论 ·
0 收藏

ARM Assembly: 第8课 branching

单个的B表示进入一个无条件的分支,而含条件的分支通常可以基于APSR 条件flag进行指令的执行。比如,基于condition flag z是否为1, 我们可以进行BEQ结果的判断。下面是各种条件分支的触发机制和与condition flag的关系。
原创
发布博客 2024.10.01 ·
459 阅读 ·
1 点赞 ·
0 评论 ·
4 收藏

ARM assembly 7

CMP指令通过计算 Rn - Operand2 来更新条件标志,但不存储结果。(即Rn大于等于Operand2),则设置为1。(换言之,有错位,反而设定为0)。CMP 通过隐式的减法操作来更新条件标志,但不存放结果。: 如果有符号溢出发生,则设置为1。: 如果结果为负,则设置为1。: 如果结果为零,则设置为1。
原创
发布博客 2024.09.29 ·
240 阅读 ·
2 点赞 ·
0 评论 ·
0 收藏

ARM Assembly 6: Shift 和 Rotate

将寄存器中的位向左移动,右边用零填充。左移相当于对二进制数进行乘以2的幂的操作。Rd: 结果存储的目标寄存器。Rn: 要进行位移的源寄存器。#shamt: 位移的位数(立即数)。S: 可选,若存在则更新条件标志。
原创
发布博客 2024.09.29 ·
651 阅读 ·
5 点赞 ·
0 评论 ·
7 收藏

ARM汇编:第四课(逻辑运算)

ADD 执行逻辑加运算,可以针对immediate 和 寄存器分别进行操作,但是基本逻辑一致,都是针对数字转换为二进制,然后进行与的操作。
原创
发布博客 2024.09.29 ·
410 阅读 ·
3 点赞 ·
0 评论 ·
4 收藏

ARM 汇编5 数据类型

在ARMv7-M处理器中,Byte对应8bits,Halfword对应16bits, Word对应32bits。而之所以two's complement 能够进行数字的表达,就是巧妙的利用了overflow的原理,如下图。关于负数,我们通常会基于two's complement的模式进行数字的表达。如下图,一个寄存器中包含8 nibbles,也就是32bits。而在展示中,我们通常会使用一位来表示4bits,也就是。2. 负数对应的表达是首先反转,1. 正数对应的表达是。所以,-18的表达就是。
原创
发布博客 2024.09.28 ·
610 阅读 ·
3 点赞 ·
0 评论 ·
1 收藏

ARM汇编3:

在下列代码中,变量var1,var2存储于内存中,我们不能通过mov去获取或者改变内存中的数值,下面介绍具体的方法。首先介绍如下语法知识。.data 的指令用于表示数据部分的开始,其中存储了已经初始化的数据。_start 表示代码entry point的位置。_start:.dataLDR可用于将内存中的数据(word)加载到寄存器。如上图指令,内存中的数据的拷贝,不能通过mov进行,需要通过LDR!具体介绍参考链接1。
原创
发布博客 2024.09.27 ·
421 阅读 ·
3 点赞 ·
0 评论 ·
9 收藏

ARM汇编语言: lesson 2(ADD, SUB, MUL, set CPSR)

在arm中,add, sub, mov都支持 sub 支持 register或者immediate的操作。而mul 只支持 寄存器的操作。
原创
发布博客 2024.09.27 ·
498 阅读 ·
4 点赞 ·
0 评论 ·
5 收藏

ARM汇编学习第一讲 MOV, Exit Syscall

准备硬件需求:一台可执行ARM 汇编的算力设备,可以是Raspberry Pi, 也可以是其他云端的虚拟机,也可以利用QEMU去仿真。资料查阅ARM架构的各种syscall信息。
原创
发布博客 2024.09.26 ·
871 阅读 ·
5 点赞 ·
0 评论 ·
16 收藏

数据结构与算法2 哈希表

关于哈希表,在python中,dict()和set()就是基于哈希表来实现对于字典的存储和管理,在CPP中,std ::unordered_map和 std::unordered_set 就是基于哈希表的实现, 而std::set 则是基于红黑树的实现。使用哈希表来存储和查找元素,能够在平均情况下实现 O(1) 的查找、插入和删除操作。
原创
发布博客 2024.09.11 ·
307 阅读 ·
3 点赞 ·
1 评论 ·
7 收藏
加载更多