<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[MD2017的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/MD2017</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; MD2017]]></copyright><item><title><![CDATA[LLM Attention and Rotary Position Embedding(旋转位置编码)]]></title><link>https://blog.youkuaiyun.com/MD2017/article/details/141570235</link><guid>https://blog.youkuaiyun.com/MD2017/article/details/141570235</guid><author>MD2017</author><pubDate>Sat, 07 Sep 2024 13:10:34 +0800</pubDate><description><![CDATA[旋转位置编码（Rotary Position Embedding，RoPE）是一种能够将相对位置信息依赖集成Attention计算里的方法。就是在做词表映射的时候不是单一的进行一个embedding计算，还考虑位置信息。]]></description><category></category></item><item><title><![CDATA[cuda性能分析工具: nsight systems]]></title><link>https://blog.youkuaiyun.com/MD2017/article/details/141457836</link><guid>https://blog.youkuaiyun.com/MD2017/article/details/141457836</guid><author>MD2017</author><pubDate>Fri, 23 Aug 2024 11:14:15 +0800</pubDate><description><![CDATA[选择File->Open找到timeline.nsys-rep（注意这个nsys-rep文件是通用的，比如可以在linux上生成，在mac上用nsight system打开）可以在CUDA API里看到cudac的算子和占比，在下面stats system view的CUD GPU Kernel Summary里有具体分析。2. 安装Nsight Systems可视化工具。timeline.nsys-rep分析报告。2. 打开Nsight System。]]></description><category></category></item><item><title><![CDATA[conda and pip]]></title><link>https://blog.youkuaiyun.com/MD2017/article/details/139927659</link><guid>https://blog.youkuaiyun.com/MD2017/article/details/139927659</guid><author>MD2017</author><pubDate>Mon, 24 Jun 2024 15:27:36 +0800</pubDate><description><![CDATA[conda删除某个env。# 清空conda缓存。]]></description><category></category></item><item><title><![CDATA[bashrc]]></title><link>https://blog.youkuaiyun.com/MD2017/article/details/116139502</link><guid>https://blog.youkuaiyun.com/MD2017/article/details/116139502</guid><author>MD2017</author><pubDate>Sun, 25 Apr 2021 22:13:04 +0800</pubDate><description><![CDATA[# 安装bash-completion(bash命令自动补全)


apt-get install bash-completion
vim ~/.bashrc
if [ -f /etc/bash_completion ] &amp;&amp; ! shopt -oq posix; then
    . /etc/bash_completion
fi



]]></description><category></category></item><item><title><![CDATA[c++调试问题纪要]]></title><link>https://blog.youkuaiyun.com/MD2017/article/details/109148029</link><guid>https://blog.youkuaiyun.com/MD2017/article/details/109148029</guid><author>MD2017</author><pubDate>Sun, 18 Oct 2020 18:14:24 +0800</pubDate><description><![CDATA[// 重复包含头文件


duplicate symbol for architecture x86_64

如果某一个.h在多个.cpp文件中都包含了（主要是在不同的.cpp中使用了同一个.h中的某个函数），那么运行时该.h就会被同时链接到两个不同的.o文件中。会出现报错，修复方法：将该.h中的被使用的函数前面加上inline即可。

参考：how-to-avoid-duplicate-symbols-when-compiling
...]]></description><category></category></item><item><title><![CDATA[docker]]></title><link>https://blog.youkuaiyun.com/MD2017/article/details/108874561</link><guid>https://blog.youkuaiyun.com/MD2017/article/details/108874561</guid><author>MD2017</author><pubDate>Tue, 29 Sep 2020 19:50:29 +0800</pubDate><description><![CDATA[1. 新建一个Dockerfile文件:


# Dockerfile
ARG UBUNTU_VERSION=16.04
FROM ubuntu:${UBUNTU_VERSION} AS base


RUN set -x; buildDeps='gcc libc6-dev make wget zlib1g-dev libssl-dev build-essential' \
    &amp;&amp; apt-get update \
    &amp;&amp; apt-get install -y $]]></description><category></category></item><item><title><![CDATA[vscode快捷键]]></title><link>https://blog.youkuaiyun.com/MD2017/article/details/108210282</link><guid>https://blog.youkuaiyun.com/MD2017/article/details/108210282</guid><author>MD2017</author><pubDate>Mon, 24 Aug 2020 22:29:35 +0800</pubDate><description><![CDATA[ctrl + 鼠标点击 # 代码跳转
Alt + &lt;--  # 跳转代码返回    


]]></description><category></category></item><item><title><![CDATA[卷机网络是怎么在GPU和CPU上做矢量运算的]]></title><link>https://blog.youkuaiyun.com/MD2017/article/details/103595281</link><guid>https://blog.youkuaiyun.com/MD2017/article/details/103595281</guid><author>MD2017</author><pubDate>Wed, 18 Dec 2019 11:54:03 +0800</pubDate><description><![CDATA[参考gitbookblog


]]></description><category></category></item><item><title><![CDATA[c++ 各种头文件作用]]></title><link>https://blog.youkuaiyun.com/MD2017/article/details/103492492</link><guid>https://blog.youkuaiyun.com/MD2017/article/details/103492492</guid><author>MD2017</author><pubDate>Wed, 11 Dec 2019 14:56:48 +0800</pubDate><description><![CDATA[#include &lt;stdio.h&gt;      /* printf, scanf, puts, NULL */
#include &lt;stdlib.h&gt;     /* srand, rand */
#include &lt;time.h&gt;       /* time */
#include &lt;iostream&gt;     /* std::cout */
#i...]]></description><category></category></item><item><title><![CDATA[c++ 指针]]></title><link>https://blog.youkuaiyun.com/MD2017/article/details/103411874</link><guid>https://blog.youkuaiyun.com/MD2017/article/details/103411874</guid><author>MD2017</author><pubDate>Thu, 05 Dec 2019 20:36:22 +0800</pubDate><description><![CDATA[c++其实是对内存操作的语言，而这个过程就可以通过指针来进行。

c++ primer: 指针(pointer)是指向（point to）另外一种类型的符合类型，[A pointer is a variable that holds a memory address where a value lives.]实现了对其他对象的间接访问。指针本身就是一个对象，允许对指针赋值和拷贝，在一个指针周期内...]]></description><category></category></item><item><title><![CDATA[c++基础内存概念]]></title><link>https://blog.youkuaiyun.com/MD2017/article/details/103407030</link><guid>https://blog.youkuaiyun.com/MD2017/article/details/103407030</guid><author>MD2017</author><pubDate>Thu, 05 Dec 2019 16:35:02 +0800</pubDate><description><![CDATA[计算机以比特序列存储数据，每个比特(bit)非0即1:


01001110

c++ primer: 大多数计算机以2的整数次幂个比特作为块来处理内存，可寻址的最小内存块成为“字节”(byte)，一个字节有8比特构成。计算机中将内存中每个字节和一个数字(称为地址，address)关联。

1 byte = 8 bit

1 K = 1024 byte

1 M = 1024 K

1 G = 1.........]]></description><category></category></item><item><title><![CDATA[GDB调试]]></title><link>https://blog.youkuaiyun.com/MD2017/article/details/103365559</link><guid>https://blog.youkuaiyun.com/MD2017/article/details/103365559</guid><author>MD2017</author><pubDate>Tue, 03 Dec 2019 13:35:37 +0800</pubDate><description><![CDATA[gdb调试c++:

参考https://thispointer.com//gdb-debugger-tutorial-series/

# 如何使用gdb模式


# c++
g++ -g main.cpp -o main  # 使用-g编译一个debug的编译文件main
# g++ 其他编译选项:g++ -Wall -Werror -Weffc++

gdb main    # 运行编译文件...]]></description><category></category></item><item><title><![CDATA[pytorch nn.Conv1d and nn.Conv2d]]></title><link>https://blog.youkuaiyun.com/MD2017/article/details/102820035</link><guid>https://blog.youkuaiyun.com/MD2017/article/details/102820035</guid><author>MD2017</author><pubDate>Wed, 30 Oct 2019 15:23:08 +0800</pubDate><description><![CDATA[可以使用nn.Conv2d代替nn.Conv1d


import torch
import torch.nn as nn

conv1d = nn.Conv1d(in_channels=64,
                                  out_channels=1,
                                  kernel_size=2,
   ...]]></description><category></category></item><item><title><![CDATA[np.savetxt保存时数据不使用科学计数法形式]]></title><link>https://blog.youkuaiyun.com/MD2017/article/details/102510180</link><guid>https://blog.youkuaiyun.com/MD2017/article/details/102510180</guid><author>MD2017</author><pubDate>Fri, 11 Oct 2019 21:04:21 +0800</pubDate><description><![CDATA[使用np.savetxt可以dump数据


np.set_printoptions(suppress=True)
np.set_printoptions(precision=4)   #设精度
np.savetxt('data_name‘, data.view(-1, 1), fmt='%.04f')   #保留4位小数

numpy在print时会有...省略掉中间部分，如果希望显示处完整数组...]]></description><category></category></item><item><title><![CDATA[shell]]></title><link>https://blog.youkuaiyun.com/MD2017/article/details/100040187</link><guid>https://blog.youkuaiyun.com/MD2017/article/details/100040187</guid><author>MD2017</author><pubDate>Fri, 23 Aug 2019 15:49:17 +0800</pubDate><description><![CDATA[统计文件个数：


ls -F |grep -v / | wc -l

将运行的程序的打印到屏幕的部分保存log文件存下来：


python main.py 2&gt;&amp;1 | tee main.log

将python文件的输出写入到一个main.log文件中。其中shell脚本默认情况下有三个文件打开： 0 stdin(标准键盘输入)， 1 stdout(标准屏幕输出)， 2 std...]]></description><category></category></item><item><title><![CDATA[pytorch逐元素比较tensor大小]]></title><link>https://blog.youkuaiyun.com/MD2017/article/details/99648480</link><guid>https://blog.youkuaiyun.com/MD2017/article/details/99648480</guid><author>MD2017</author><pubDate>Thu, 15 Aug 2019 18:15:54 +0800</pubDate><description><![CDATA[import torch
a = torch.tensor([[0.01, 0.011], [0.009, 0.9]])
mask = a.gt(0.01)
print(mask)


tensor比较大小可以用tensor.gt属性。上面比较了a中每个元素和0.01的大小，大于0.01的元素输出True。输出结果：


tensor([[False,  True],
        [Fals...]]></description><category></category></item><item><title><![CDATA[git使用]]></title><link>https://blog.youkuaiyun.com/MD2017/article/details/99644369</link><guid>https://blog.youkuaiyun.com/MD2017/article/details/99644369</guid><author>MD2017</author><pubDate>Thu, 15 Aug 2019 17:54:52 +0800</pubDate><description><![CDATA[# 首次使用绑定账号,name和email为注册github/gitlab的账户名字和注册邮箱


git config --global user.name "name"

git config --global user.email "name@email.com"



# 创建SSH keys并在自己电脑上配置SSH。参考https://github.com/settings/keys。...............]]></description><category></category></item><item><title><![CDATA[c++初学.面向对象程序设计]]></title><link>https://blog.youkuaiyun.com/MD2017/article/details/98885113</link><guid>https://blog.youkuaiyun.com/MD2017/article/details/98885113</guid><author>MD2017</author><pubDate>Thu, 08 Aug 2019 21:05:59 +0800</pubDate><description><![CDATA[c++刚学习，一头雾水。记录一下。代码来自https://github.com/Mooophy/Cpp-Primer

文件列表：



// main.cpp


#include &lt;iostream&gt;
#include &lt;string&gt;

#include "quote.h"
#include "bulk_quote.h"

// 声明print_total函数，使用前...]]></description><category></category></item><item><title><![CDATA[grep查找特定程序语句所在的文件]]></title><link>https://blog.youkuaiyun.com/MD2017/article/details/98747244</link><guid>https://blog.youkuaiyun.com/MD2017/article/details/98747244</guid><author>MD2017</author><pubDate>Wed, 07 Aug 2019 14:44:33 +0800</pubDate><description><![CDATA[# 查找当前文件夹目录下所有cpp文件中包含empty_like语句的程序，并用颜色显示出来


grep --color -n -i "empty_like" *.cpp

# 查找当前文件夹及所有子文件夹下含有empty_like语句的文件


grep -nr  "empty_like" *

# 不查找二进制文件


grep --binary-files=without-match "d...]]></description><category></category></item><item><title><![CDATA[Bash Shell]]></title><link>https://blog.youkuaiyun.com/MD2017/article/details/98730195</link><guid>https://blog.youkuaiyun.com/MD2017/article/details/98730195</guid><author>MD2017</author><pubDate>Wed, 07 Aug 2019 10:29:44 +0800</pubDate><description><![CDATA[# 判断一个文件夹是否存在


if [ -d build ]
then
    echo "Directory Exists"
    rm -rf build/*
else
    mkdir build
fi

echo表示输出显示

bash shell下可以直接执行terminal下的一些指令，比如:


cd build
cmake ..
make
./main


...]]></description><category></category></item></channel></rss>