赵大寳

鶸鸡程序员,新世纪农民工

每个人的人生之路都会面临许多选择,最近也需要做一些抉择了,有的人面对选择会表现的随性,有些人会表现的纠结迷茫,似乎选择了A就得放弃B,选择了B就得放弃A。那么有没有一种理论能指导选择的逻辑呢?最近有一些所思所想,我把它称之为底层逻辑,本篇博客便记录最近理解的一些底层逻辑。 底层逻辑 近来一段时间对进化论尤为感兴趣,查阅观看了大量关于各种各样神奇的物种、进化故事、人类起源方面的视频资料,还热情到购买…

Read more »

host: CPU device: GPU nvcc: CUDA 编译器 gridDim: 1个grid中有多少个block blockDim: 一个block中有多少个线程 blockIdx: 当前线程所属的block序号,同一个block中的所有线程共享这一个blockIdx threadIdx: 当前线程在当前block中的序号 dim3 Executed on the: Only call…

Read more »

通过阅读本文,你可以掌握解决DeepRec编译过程中的所有问题,需要的背景知识Docker、Docker-compose、 Bazel的介绍及使用 Bazel是Google开源的一款代码构建工具。Bazel支持多种语言(C++、Golang、Python、Rust)并且跨平台,还支持增量编译、自动化测试和部署、具有再现性(Reproducibility)和规模化等特征。Bazel 在谷歌大规模软件…

Read more »

不加圖文的乘法 在本節中,請考慮兩個矩陣 A 和 B 的乘法,其定義如下: 是 3 by-2 矩陣,B 是 2-by-3 矩陣。 將 A 乘以 B 的乘積是下列 3-by-3 矩陣。 乘以 B 元素的資料行乘以 A 的資料列來計算乘積。 若要在不使用 C++ AMP 的情況下相乘 開啟 MatrixMultiply.cpp,並使用下列程式碼來取代現有的程式碼。 C++複製 1 2 3 4 5 6…

Read more »

C++11 中推出了三种智能指针,unique_ptr、shared_ptr 和 weak_ptr,同时也将 auto_ptr 置为废弃 (deprecated)。 但是在实际的使用过程中,很多人都会有这样的问题: 不知道三种智能指针的具体使用场景 无脑只使用 shared_ptr 认为应该禁用 raw pointer(裸指针,即 Widget * 这种形式),全部使用智能指针 本文将从这几方面讲…

Read more »

Auto Graph Fusion: 该功能提供了内置的一组子图匹配模板,当用户的计算图中存在某个模板的匹配,在图优化阶段会自动替换该模板对应的Macro Op。 通过增加模板可以灵活的增加Auto Graph Fusion可以支持的图的种类 该功能可以完全自动,不需要用户显式地修改代码 通过Auto Graph Fusion可以有效的减少访存以及调度带来的开销 openmlsys.github.…

Read more »

Perf可以查看函数调用的耗时,从而可以定位到性能瓶颈 Install docker 容器内的perf需要从源码编译安装 1、linux内核源码准备 ​ 查看物理机内核版本号,根据此版本到阿里云开源镜像中找到对应的的内核源码。 https://mirrors.aliyun.com/linux-kernel 2、安装依赖 1 apt install flex bison libelf-dev lib…

Read more »

https://kishorepv.github.io/DSSM/ DeepRec CPU性能优化大赛记录: alideeprec/deeprec-tianchi:deeprec-cpu-py36-ubuntu18.04: {‘DIEN (s)’: ‘338.2874277641531’, ‘DIEN_auc’: ‘0.7482089’, ‘DIN (s)’: ‘344.94890816…

Read more »

PlantUML PlantUML 是一個可以透過直觀的文字描述產生對應 UML 的模型生成工具,官方網站已經提供了詳細的範例以及說明,相關語法其實不用一開始就先死背,需要時至網站查詢即可,上手難度不大,目前提供下列 UML 模型: 模型名稱 範例 循序圖 (Sequence Diagram) 使用案例圖 (Use Case Diagram) 類別圖 (Class Diagram) 活動圖 (Ac…

Read more »

The Matrix class矩阵类:在Eigen库中,所有的矩阵和向量都是Matrix类,向量是一个只有1行或者1列的特殊矩阵。 一、矩阵的定义 Matrix类接收六个参数,但是前三个参数足够了。剩下的三个参数都有默认值,现在我们保持后面三个参数不变,只讨论前三个参数。 Matrix<元素类型 float, int Rows, int Cols> 即: Matrix<元素类型 例如float型…

Read more »

本文介绍tensorflow Serving的原理和代码实现, 并提供简要的代码阅读指导. # 如何serve一个模型 具体的步骤可以参考 官方文档 . 主要包括两个部分: # 导出模型 启动服务 需要说明的是导出模型部分. 如果要把我们训练的模型拿来提供服务, 除了模型本身外, 还需要一些额外的信息, 比如模型的名称, 输入、输出对应的tensor信息, 方法名, 这些东西可以让TFS进行请求数…

Read more »

场景 假设你现在要处理这样一个问题,你有一个网站并且拥有 很多 访客,每当有用户访问时,你想知道这个ip是不是第一次访问你的网站。 hashtable 可以么 一个显而易见的答案是将所有的ip用hashtable存起来,每次访问都去hashtable中取,然后判断即可。但是题目说了网站有 很多 访客, 假如有10亿个用户访问过,每个ip的长度是4 byte,那么你一共需要4 * 100000000…

Read more »

The benefits of mixed-precision-training: 1、less memory, enabling the training and deployment of larger neural networks 2、require less memory bandwidth, speeds up data transfer operations 3、math opera…

Read more »

写在前面 在我的工作经历中,前几年在Windows上进行开发,使用Visual Studio进行调试,简直是利器,各种断点等用鼠标点点点就能设置;大概从12年开始转Linux开发了,所以调试都是基于GDB的。本来这篇文章也想写写Windows下调试相关,奈何好多年没用了,再加上工作太忙,所以本文就只写了Linux下GDB调试相关,对于Windows开发人员,实在对不住了😃。 这篇文章,涉及的比较全…

Read more »

前言 背包问题 (Knapsack problem) 是一种组合优化的 NP (NP-Complete) 完全问题。问题可以描述为:给定一组物品,每种物品都有自己的重量和价格,在限定的总重量内,我们如何选择,才能使得物品的总价格最高。问题的名称来源于如何选择最合适的物品放置于给定背包中。 @百度百科 一般问题: 我们有 nn 件物品和一个容量 (capacity)(capacity) 为 CC 的…

Read more »

std是一个 命名空间的名字。 STL是 Standard Template Library的缩写,即标准模板库。 std::to_string 1 2 // Converting number to string std::string str = std::to_string(9954); std::atoi 1 2 int num = std::atoi("9954");

Read more »

一、编辑docker.service文件

1
vi /usr/lib/systemd/system/docker.service

找到 Service 节点,修改 ExecStart 属性,增加 -H tcp://0.0.0.0:2375

1
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock -H tcp://0.0.0.0:2375

这样相当于对外开放的是 2375 端口,当然也可以根据自己情况修改成其他的。

Read more »

野指针:

“野指针”不是NULL指针,是指向“垃圾”内存的指针。人们一般不会错用NULL指针,因为用if语句很容易判断。但是“野指针”是很危险的,if语句对它不起作用。野指针的成因主要有两种:

  一、指针变量没有被初始化。任何指针变量刚被创建时不会自动成为NULL指针,它的缺省值是随机的,它会乱指一气。所以,指针变量在创建的同时应当被初始化,要么将指针设置为NULL,要么让它指向合法的内存。

  二、指针p被free或者delete之后,没有置为NULL,让人误以为p是个合法的指针。别看free和delete的名字恶狠狠的(尤其是delete),它们只是把指针所指的内存给释放掉,但并没有把指针本身干掉。通常会用语句if (p != NULL)进行防错处理。很遗憾,此时if语句起不到防错作用,因为即便p不是NULL指针,它也不指向合法的内存块。

Read more »
0%