- 博客(10)
- 资源 (8)
- 收藏
- 关注
原创 循环卷积与线性卷积
循环卷积针对的是两个长度都为N的序列,对两个序列做FFT,然后再做IFFT得到的结果就是循环卷积,结果的长度也是N。直接计算步骤:序列A与序列B,长度都是N,新的序列C1、把B倒过来。[翻转]2、把B向右平移一个元素。最右侧的元素补到左边。3、计算此时A和B对应元素的积的和。将其加到C的末尾。4、如果C中还不足N个元素,重复步骤2和3。线性卷积针对的是两个...
2020-01-09 20:33:37 14673 1
原创 TensorCore使用
目前有两个库使用了TensorCore技术:cuBLAS与cuDNN。cuBLAS主要加速了GEMM计算,cuDNN里主要用来加速卷积和RNN而如何cuBLAS与cuDNN无法满足需求,也可以直接调用Tensor Cores进行编程。Tensor Cores的调用API在nvcuda::wmma命名空间里。通过调用API进行数值初始化,进行矩阵乘加(MMA)操作然后再把数值存回内存。c...
2019-12-31 13:20:25 4939
原创 离散卷积及计算
离散卷积的定义:将两个离散序列中的数,按照规则,两两相乘再相加的操作。卷积运算: 的长度是 , 的长度是 , 的长度是 计算卷积的过程:序列翻转,移位,相乘,取和计算举例:其中k等于a的长度。翻转移位相乘的操作如下:代码实现:Matlab代码:a=[1,2,3];b=[2,3,1];y=conv(b,a);C++代码:这里实现的主要...
2019-12-22 21:33:25 34593
原创 高性能与并行计算领域一些期刊与会议及资料阅读列表
IEEE transactions on parallel and distributed systems (TPDS)主页:https://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=71归档文件:https://dblp.uni-trier.de/db/journals/tpds/Journal of Parallel and ...
2019-09-22 20:06:21 2766 1
原创 以cufftPlanMany为例FFT变换中embed,stride,dist的解释与设置
关于FFT的自定义数据分布进行变换,之前每次都是用的写demo,这次搞明白之后记录一下,以便以后查阅。比如需要对一个二维数组里的每一行或者每一列进行傅里叶变换,那么需要对cufftPlanMany进行设置,然后进行批量处理。cufftPlanMany的函数声明如下cufftResult cufftPlanMany(cufftHandle *plan, int rank, int *n...
2019-09-08 23:35:59 7509 13
原创 多GPU编程可能遇到的一些问题
最近在写一个多GPU编程的程序,按照传统的写法写了之后,程序一直卡在核函数运行之后,没有任何输出// includes, project#include <cuda_runtime.h>#include <device_launch_parameters.h>#include <cufft.h>#include <cuComplex.h>...
2019-09-04 10:28:18 434
原创 MPI_多节点执行程序
有的时候MPI需要使用多节点,那么测试哪些进程在哪些机器上就比较重要,如下可以简单测试一下。#include <unistd.h>#include <stdio.h>#include <mpi.h>int main (int argc, char* argv[]) { char hostname[100]; int rank, size;...
2019-01-22 15:15:23 10242
原创 MPI_Scatterv 的使用 散发不同大小的数据块
如果需要将一个进程中的数据分发到不同进程,可以使用这个函数而每个进程如果需要的数目不同,则需要如下操作:1.首先根进程得到每个进程需要的数目(通过组收集gather)2.然后计算发送的数据不同的偏移(根据每个进程需要的数目计算)3.组分发 int main(int argc, char *argv[]){ int myid; //process i...
2019-01-15 23:31:24 3423
原创 MPI_Gatherv 的使用 发送接收不同大小的数据块
MPI_Gatherv可以从不同进程收集大小不同的数据块,但是在网上看到的都是发送固定大小,偏移量不同的例子,而官网给出的例子,虽然大小可变,但是需要重新定义数据类型,对于连续数据比较麻烦。下面的代码按照如下思路1.每个进程根据进程号初始化一块数据,发送数据大小与进程号有关(myid+1)2.首先使用Gather将每个进程要发送数据大小发给root进程,以方便偏移量的计算3.在ro...
2019-01-15 10:38:59 2942
原创 使用slim读取Deeplab里的tfrecords
splits_to_sizes = { 'train': 1000, # num of samples in images/training 'val': 100, # num of samples in images/validation}_ITEMS_TO_DESCRIPTIONS = { 'image': 'A color image of var...
2018-05-11 16:33:48 663
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人