GPU线程运行机制
来源:互联网 发布:matlab 网络协议仿真 编辑:程序博客网 时间:2024/06/05 16:38
///****测试在kernel里面交换全局内存的值
#include<iostream>
#include<cuda.h>
#include<cuda_runtime.h>
#include<time.h>
using namespace std;
const int N=300;
__global__ void show(int* a)
{
for(int i=blockIdx.x*blockDim.x+threadIdx.x;i<N+blockDim.x*gridDim.x;
i+=blockDim.x*gridDim.x)
{
if(i<N)
{
printf("%d ",a[i]);
/*a[i]++;*/
if(i%60==0)
printf("\n\n\n");
}
}
}
int main(void)
{
int ha[N];
int *da;
cudaMalloc((void**)&da,N*sizeof(int));
for(int i=0;i<N;i++)
ha[i]=i;
cudaMemcpy(da,ha,N*sizeof(int),cudaMemcpyHostToDevice);
show<<<3,20>>>(da);
cudaMemcpy(ha,da,N*sizeof(int),cudaMemcpyDeviceToHost);
//for(int i=0;i<N;i++)
// cout<<ha[i]<<" ";
return 0;
#include<iostream>
#include<cuda.h>
#include<cuda_runtime.h>
#include<time.h>
using namespace std;
const int N=300;
__global__ void show(int* a)
{
for(int i=blockIdx.x*blockDim.x+threadIdx.x;i<N+blockDim.x*gridDim.x;
i+=blockDim.x*gridDim.x)
{
if(i<N)
{
printf("%d ",a[i]);
/*a[i]++;*/
if(i%60==0)
printf("\n\n\n");
}
}
}
int main(void)
{
int ha[N];
int *da;
cudaMalloc((void**)&da,N*sizeof(int));
for(int i=0;i<N;i++)
ha[i]=i;
cudaMemcpy(da,ha,N*sizeof(int),cudaMemcpyHostToDevice);
show<<<3,20>>>(da);
cudaMemcpy(ha,da,N*sizeof(int),cudaMemcpyDeviceToHost);
//for(int i=0;i<N;i++)
// cout<<ha[i]<<" ";
return 0;
}
从结果可以是有序执行
0 0
- GPU线程运行机制
- JS运行机制(线程)
- JavaScript 运行机制与单线程
- 浅谈js运行机制(线程)
- 浅谈js运行机制(线程)
- GPU线程及调度
- GPU线程及调度
- Flash的运行机制:异步单线程
- javaScript Core -- 运行机制:单线程&&任务队列
- JavaScript单线程运行机制与并发模型
- 运行机制
- iphone开发,ui界面和后台线程的运行机制
- 关于线程池结构以及互斥锁的运行机制
- 理解JavaScript的单线程运行机制及setTimeout(fn,0)
- 线程的几种可用状态及运行机制
- GPU
- gpu
- GPU
- 手游中android平台在java代码里--->游戏子线程和java主线程的交替运行
- PBOC2.0安全系列之—脱机认证之静态数据认证(SDA)
- Java FlowLayout、BorderLayout、GridLayout、GridBagLayout、CardLayout布局管理器
- android.os.handler相关知识整理
- smarty的应用
- GPU线程运行机制
- ajaxFileUpload 跨同顶级域访问问题
- window下创建软连接
- solrcloud/solr error
- ecshop分析 php和dwt文件之间的参数传递【转载于源代码网】
- Android学习笔记之AndroidManifest.xml文件解析
- 安卓菜鸟,努力!
- 1011. World Cup Betting (20)
- 第十一周项目4 特殊的三位数