cuda unified memory简介 和 cuda深拷贝问题
cuda unified memory简介 和 cuda深拷贝问题
unified memory
unified memory 是cuda6.0以后的版本增加的一个编程模型
统一内存创建了一个受管内存池,该池在CPU和GPU之间共享,弥合了CPU与GPU的鸿沟。使得CPU端和GPU端都能通过同一个指针访问数据,从而避免了程序员编写代码时显示的执行GPU和CPU端的内存拷贝命令
一个使用unified memory的例子如下
1234567891011void sortfile(FILE *fp, int N){ char *data; cudaMallocManaged(data, N); fread(data, 1, N, fp); qsort<<<...>>>(data, N, 1, compare); cudaDeviceSynchronize() usedata(data); free(data);}
观察上面的例子我们看到,以前需要的 cudaMemcpy 不再需要了
如果不 ...
使用sstream读取字符串中的数字(c++)
使用sstream读取字符串中的数字(c++)
stio & atoi
先介绍以前常用的方法( stoi 或 atoi )
在以往的c++编程中当我们输入整行以空格作为分割的数字时
由于整行读入的字符串,我们会采用空格切分字符串,在进行处理
stoi需要包含头文件#include<string>
atoi需要包含头文件#include<sctdlib>
stoi(string) 参数是一string类型,当字符串不合法时,会报错
atoi(char*) 参数是char*类型,即c字符串,当字符串非法时,他会从字符串开始寻找正负号小数点或者数字,遇到非法字符时停下
例如“123HD23330”通过调用atoi返回值为123,而stoi则会直接报错
此外还有一函数strtoi(char*)用法与atoi一直,只是stroi可以指定的进制
以上是整数类型的转换,此外还有 ***stof(),stod(),strtod()***等函数可以进行浮点数的转换
sstream
接下来是要介绍的 stringstream 类,运用此方法不需要将一群数字组成的串用空格切分 ...
Cuda C 混合编译
Cuda C 混合编译
1 extern “C”
在用CUDA的.cu文件和C的.c文件混合编译时,最后用gcc对之前步骤生成的目标.o文件混合编译时经常会报错
例如我门又如下三个文件
c语言的main.c文件
12345#include "cuda_fun.h"int main(){ cuda_fun();}
cuda_fun.h头文件是函数的声明,这里省略
cuda_fun.cu
123456789101112#include "cuda_fun.h"__global__ cuda_kernel(){ //some code}int cuda_fun(){ nBlock = 1; nThread = 128; cuda_kernel<<<nBlock,nThread>>>();}
如果我们想混合编译.c和.cu文件,编译时可能会遇到undefined reference to cuda_fun的错误,这是由于由于nvc ...
osdi16pung
Unobservable communication over fully untrusted infrastructure
本周组会汇报的论文 《Unobservable communication over fully untrusted infrastructure》 发布在OSDI16上,其主要工作聚焦于通信当中的元数据的隐私保护问题。
所谓元数据就是指的除了通信信息内容以外的通信消息,如通信双方,通信时间,信息长度,发送方接收方收发消息的频率等可以泄露相关隐私的数据。
论文设计并实现了一个用于通信元数据隐私保护的系统——Pung,如图1。
主体思想就是用一个中间的KV存储系统进行消息的转发,发送者将信息发送到该KV存储中,接收者按照相应的label值进行检索(为了隐藏收发双方的关系,发送和检索的label值需不一样)。
论文中信息的检索采用了PIR的方案,但是PIR的每次访问都需要遍历整个数组,用户事先是不知道想要查找的label值在整个集合中的索引的,在集合有序的情况下,每次都需要log(n)次遍历所有集合的检索操作,需要n*log(n)的操作。
为了改善这一点,文中使用 ...
cuda-julia
cuda 学习——julia 集计算
最近在学习 cuda ,正在看《 cuda by examples 》一书,感觉也是受益很多 之前在 B 站上也看了 NVIDA 的视频,结合起来还是很不错的
在这里记录一下学习的心得和笔记
关于 julia 集
关于 julia 集, julia 集合是一个在复平面上形成分形的点的集合 可以由下式得到
f(x)=x2+cf(x)=x^{2}+c
f(x)=x2+c
其中c是一个固定的复数
这样对于某一x,经过不停的迭代可以得到一序列
x,f(x),f2(x),f3(x)...x,f(x),f^{2}(x),f^3(x)...
x,f(x),f2(x),f3(x)...
其中
fn+1(x)=x2+cf^{n+1}(x) = x^{2}+c
fn+1(x)=x2+c
这样复平面内的点有的经过迭代后会发散到无穷,或始终处于某一范围之内并收敛于某一值。我们将使其不扩散的z值的集合称为朱利亚集合
我对Julia集的了解也并不深入(毕竟不是学数学的)不过这些知识对于计算来说也够用了
下面来慢慢分析
相关头文件下载
在分析代码之前我们需要先下载书中的头 ...
Hello World
Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub.
Quick Start
Create a new post
bash1$ hexo new "My New Post"
More info: Writing
Run server
bash1$ hexo server
More info: Server
Generate static files
bash1$ hexo generate
More info: Generating
Deploy to remote sites
bash1$ hexo deploy
More info: Deployment