Hi! 我是李文举.

一名AI算法工程师,热爱生成式模型和具身智能.

动态链接分析指引

一、为什么需要动态链接

静态链接的出现,提高了程序的模块化水平。对于一个大的项目,不同的人可以独立地测试和开发自己的模块。通过静态链接,生成最终的可执行文件。

但是在多进程的背景下,静态链接的缺点就显示出来了。

想象这样一种情况,一个程序使用了glibc标准库,现在计算机中同时运行着该程序的100个进程。那么,每个进程中都会有一份glibc,操作系统需要在真实的物理内存中加载100份glibc,浪费了很多内存。

阅读全文 »

CUDA矩阵转置要点

在kernel执行过程中,执行了两个相互独立的索引映射。

1、第一个映射


第一个映射比较简单,就是根据线程索引映射到原始矩阵的全局内存地址。

分成两步完成,第一步是映射到矩阵的坐标。

阅读全文 »

技术人最终还是要靠技术

当初选择技术作为职业方向时,怀着技术改变世界的理想。

入行后,慢慢地,一种声音总在耳边来回响,那就是技术要服务业务。

好像这个说法也没毛病,毕竟这样才能体现技术的价值。

阅读全文 »

C++中的左值右值

左值和右值

一句话,左值可以取地址、位于等号左边;而右值没法取地址,位于等号右边。

int a = 5;
  • a可以通过 & 取地址,位于等号左边,所以a是左值。
  • 5位于等号右边,5没法通过 & 取地址,所以5是个右值。

阅读全文 »

我的理想生活

做一只北极熊

冬季来临时

在山坡向阳处挖个洞

钻进去

阅读全文 »

python中的keyword argument

keyword arguments有两个含义。

一、函数调用时的keyword arguments

这里的含义是说,你可以在调用函数时,通过key=value这种方式,指定某个参数的值。这里,你不用关心这个参数是不是positional arguments,以及有没有默认值。

唯一的要求是,这些key=value要在没有名字的positional arguments后面。

阅读全文 »

比特位计数

题目链接

一、O(nlog(n))解法

核心是理解 x &(x-1) 的作用是把x的最低位的1置零。

def countOnes(x: int) -> int:
            ones = 0
            while x > 0:
                x &= (x - 1)
                ones += 1
            return ones

计算一个数的1比特位的个数。然后依次计算即可。

阅读全文 »

最佳买卖股票时机含冷冻期思维要点

题目链接

要点一:统一买和卖

从现金的角度思考,买,代表现金减少,卖代表现金增加。题目是求最后的最大现金值。

阅读全文 »