- 博客(21)
- 资源 (18)
- 收藏
- 关注
原创 CUDA编程07——向量求和(并行规约,交错配对)
在CUDA编程06——向量求和(并行规约,相邻配对)中介绍了最简单向量求和规约算法。这里补充一个概念:关于warp和half-warp一个warp包含32个threads。warp是调度和执行的基本单位,half-warp是存储器操作的基本单位,这两个非常重要。因此上例中可以看到,由于采用了相邻配对,大多数的累加线程都是在不同的warp内,因此会需要更多的调度开销。因此可以考虑采用交错配对的方式,让那些已经完成了求和任务的线程不在调度。如下图所示:核函数代码// de.
2021-12-03 22:55:03 622
原创 CUDA编程06——向量求和(并行规约,相邻配对)
并行规约通常用于处理大输入数据集,将一组输入值规约一个值。数据特点:(1)对于数据集中的元素没有顺序要求。(2)可将数据分为若干小集合,每个线程处理一个集合。操作可以是:求最大值(Max)、求最小值(Min)、求和(Sum)、求乘(Product)。并行规约求和规约求和是常见应用,将输入数据求和得到一个值。如下面简单例子所示:规约求和的最简单思想是:先两两求和,然后再两两直至得到最后结果。核函数代码// device code__global__ vo..
2021-12-03 22:05:34 1615
原创 CUDA编程05——矩阵相乘 (shared memory)
在CUDA编程04——矩阵相乘 (去除长度限制)CUDA编程03——矩阵相乘CUDA编程04——矩阵相乘 (去除长度限制)中,另外一个问题是kernel 函数中存在很多global memory的读写操作。这些操作主要是一些重复读取,例如在计算目标矩阵C中的一列元素时,每一个元素的计算都需要读取矩阵A中的一行和B中的一列。行每次都在变化,但是列每次都是一样的。同理计算目标矩阵C中的一行元素时也一样。因此,如果可以共享这些部分,则可以减少对于global memory的访问,提升吞吐量。Shared M.
2021-11-27 22:42:56 1583 1
原创 CUDA编程04——矩阵相乘 (去除长度限制)
在CUDA编程03——矩阵相乘最后,指出了存在长度限制的缺点。本例中我们降尝试解决这个问题。具体做法是:我们将输出矩阵拆分成小块(Tile),把拆分的每个小块放到一个block中,然后通过threadIdx和blockIdx来索引。CPU计算的代码不变,只是现在的矩阵维度从32x32变成了1024x1024。GPU计算代码:__global__ void matrix_mul_device(FLOAT* M, FLOAT* N, FLOAT* P, int width){ in..
2021-11-27 17:30:16 542
原创 CUDA编程03——矩阵相乘
矩阵相乘的图示如下:CPU代码显然,最直接的矩阵相乘算法,需要三重循环,代码如下:void matrix_mul_host(FLOAT* M, FLOAT* N, FLOAT* P, int width){ for (int i = 0; i < width; ++i) { for (int j = 0; j < width; ++j) { float sum = 0, a, b; for (int k = 0; k < width; +..
2021-11-23 15:49:26 1277
原创 CUDA编程02——向量相加
预备知识先来看一张图:Host:指的是CPU端。Device:指的是GPU端。Device上有很多执行单元,也就是上图中的Thread。每个Thread可以执行一个核函数(在GPU上执行的函数)。Device上包含若干个网格(Grid),每个网格中包含若干个块(Block),每个块内包含若干个线程(Thread)。在上一篇博客中,下面这些变量就是和这三个名词相关的:Maximum number of threads per SM: 2048M.
2020-08-10 23:51:20 1028 1
原创 pytorch计算模型参数
废话不多说,直接上代码import torchimport torch.nn as nnclass model(nn.Module): def __init__(self): super(model, self).__init__() self.conv1 = nn.Sequential( nn.Conv2d(3, 32,...
2020-03-10 22:12:38 455 1
原创 使用netron工具可视化pytorch模型
netron是微软小哥lutzroeder的一个广受好评的开源项目,地址https://github.com/lutzroeder/Netro可惜,默认支持的格式中并不包括pytorch,可能当年小哥面试facebook被拒了,:)Netron supports ONNX (.onnx, .pb, .pbtxt), Keras (.h5, .keras), Core ML (.mlmod...
2019-11-08 16:55:11 9703 2
原创 TensorFlow Object Detection系列教程一:Hello world!
TensorFlow Object Detection API系列教程一:Hello World! 简单介绍第一个目标检测例子实验环境代码下载安装相关依赖编译ProtobufRun起来简单分析参考简单介绍TensorFlow Object Detection API是一个基于Tensorflow之上的开源框架,它使得构建、训练和部署目标检测模型变得更加容易。这是一个google的项目,对于计算...
2019-04-27 16:02:33 267
原创 Cross product - matrix transformation identity
How to prove the following equation?Proof 1:Proof 2Proof 3
2019-03-22 16:40:19 753
原创 阴影错觉Optical illusion
阴影错觉(Optical illusion)的例子有很多,我们这里列举一个edward adelson的例子,首先观察下面的图像请问棋盘上A和B两个方格哪个更亮?相信大家的答案都是A方格更亮,毕竟看上去B方格是处在绿色圆柱体的阴影中。但是实际的结果却出人意料,如果把这张图放到图像编辑软件,如photoshop中,你会发现A和B的是一样的。还有一种证明方法,就是放置两个长条在
2017-03-03 21:23:50 2712 2
原创 略讲BeautifulSoup
BeautifulSoup是一个解析html,xml这类格式化文档的利器。pip安装BeautifulSoup的命令是:pip install beautifulsoup4在python中引入响应的包:from bs4 import BeautifulSoup1. BeautifulSoup的初始化初始化可以使用格式化的字符串,也可以使用本地文件,如下所示:m1
2017-03-02 22:12:25 475
原创 Caffe之learning rate policy
learning rate很重要,如何设置它有很多种方法,在Caffe源码的caffe-master\src\caffe\solvers\sgd_solver.cpp中的GetLearningRate函数注释中有对应的介绍,如下:// policies are as follows:// - fixed: always return base_lr.// - step: ret
2017-03-02 21:19:00 3241
原创 python3使用builtwith识别网站使用相关技术
1. 首先通过pip install builtwith安装builtwithC:\Users\Administrator>pip install builtwithCollecting builtwith Downloading builtwith-1.3.2.tar.gzInstalling collected packages: builtwith Running setup
2017-02-21 22:44:09 4740
原创 windows下使用pycharm进行python3开发
python流行了,需要学习一下,毕竟可以带来很多方便,闲话不多说,现在windows下配置一个环境慢慢学吧首先下载并安装python3和pycharm,下载链接如下python: https://www.python.org/downloads/pycharm: http://www.jetbrains.com/pycharm/download/#section=window
2017-02-21 20:41:13 4483
原创 ubuntu update software to higher version
sudo apt-get install build-essentialwget http://www.cmake.org/files/v3.4/cmake-3.4.1.tar.gztar xf cmake-3.4.1.tar.gzcd cmake-3.4.1./configuremakesudo apt-get install checkinstallsudo che
2017-01-09 16:12:37 778
原创 静态断言
断言(assert)作为一种程序调试的重要手段。c++的和头文件中assert宏的代码如下:#undef assert#ifdef NDEBUG#define assert(_Expression) ((void)0)#else /* NDEBUG */#ifdef __cplusplusextern "C" {#endif /* __cplusplus
2016-12-02 21:34:24 1259
原创 C++使用matlab卷积神经网络库MatConvNet来进行手写数字识别
环境:WIN10(64 bit)+VS2010(64 bit)+Matlab2015b(64 bit)关于MatConvNet的介绍参考:http://www.vlfeat.org/matconvnet/Github下载地址为:https://github.com/vlfeat/matconvnet/我们的目的是将MatConvNet自带的手写数字识别DEMO移植到
2016-04-23 21:26:06 9593 7
pytorch-lightning离线文档
2022-04-05
Quantitative Methods for Business 13th Edition
2019-09-22
TestMatconvnetMnistVs2010
2016-04-23
Windows网路编程(第二版)
2011-02-22
Windows也可与Mac一样酷、一样炫-WPF基本介绍
2010-01-19
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人