当前位置: 首页 > news >正文

权威的网站建设公司石家庄最新封闭消息

权威的网站建设公司,石家庄最新封闭消息,网站后期的维护和更新,个人网站能挂广告吗目录 1. 解决的问题 2. 分析 3. 方法 4. 代码示例 1. 解决的问题 利用块和线程索引#xff0c;从全局内存中访问指定的数据。 2. 分析 通常情况下#xff0c;矩阵是用行优先的方法在全局内存中线性存储的。如下。 8列6行矩阵#xff08;nx,ny#xff09;#xff08;…目录 1. 解决的问题 2. 分析 3. 方法 4. 代码示例 1. 解决的问题 利用块和线程索引从全局内存中访问指定的数据。 2. 分析 通常情况下矩阵是用行优先的方法在全局内存中线性存储的。如下。 8列6行矩阵nx,ny86。 3. 方法 这里建立二维网格(2,3)二维块(4,2)为例使用其块和线程索引映射矩阵索引。 1第一步可以用以下公式把线程和块索引映射到矩阵坐标上 2第二步可以用以下公式把矩阵坐标映射到全局内存中的索引/存储单元上 比如要获取矩阵元素(col,row) (2,4) ,其全局索引是34映射到矩阵坐标上 ix 2 0*32 iy 0 2*24. 然后再映射到全局内存idx 4*8 2 34. 4. 代码示例 #include cuda_runtime.h #include device_launch_parameters.h // threadIdx#include stdio.h // io #include time.h // time_t #include stdlib.h // rand #include memory.h //memset#define CHECK(call) \ { \const cudaError_t error_code call; \if (error_code ! cudaSuccess) \{ \printf(CUDA Error:\n); \printf( File: %s\n, __FILE__); \printf( Line: %d\n, __LINE__); \printf( Error code: %d\n, error_code); \printf( Error text: %s\n, \cudaGetErrorString(error_code)); \exit(1); \} \ }void initiaInt(int* p, const int N) {for (int i 0; i N; i){p[i] i;} }/// summary /// /// /summary /// param namec全局内存中线性存储的二维矩阵/param /// param namenx列/param /// param nameny/param void printMatrix(int* c, const int nx, const int ny) {int* ic c;printf(\n matrix: [%d, %d] \n, nx, ny);for (int i 0; i ny; i){for (int j 0; j nx; j){int cur_ele ic[i * nx j];printf(%d , cur_ele);}printf(\n);}printf(\n); }/// summary /// /// /summary /// param namea全局内存中是线性存储的/param /// param namenxcol/param /// param nameny/param /// returns/returns __global__ void printThreadIdx(int* a, const int nx, const int ny) {// 矩阵行列int ix threadIdx.x blockIdx.x * blockDim.x;int iy threadIdx.y blockIdx.y * blockDim.y; // 全局索引unsigned int idx iy * nx ix; // 前面有iy行每行有nx个数。printf(thread_idx (%d, %d) block_idx (%d, %d) coordinate (%d, %d) global index %d val %d\n,threadIdx.x, threadIdx.y, blockIdx.x, blockIdx.y, ix, iy, idx, a[idx]); }int main(void) {// get device infoint device 0;cudaDeviceProp deviceProp;CHECK(cudaGetDeviceProperties(deviceProp, device));printf(Using device: %d %s, device, deviceProp.name); // 卡号0的显卡名称。CHECK(cudaSetDevice(device)); // 设置显卡号// set matrix dimensionint nx 8, ny 6, nxy nx * ny;int nBytes nxy * sizeof(int);// malloc host memoryint* h_a;h_a (int*)malloc(nBytes);// init datainitiaInt(h_a, nxy);printMatrix(h_a, nx, ny);// malloc device memoryint* d_Mat_a;cudaMalloc((void**)d_Mat_a, nBytes);// transfer data from host to devicecudaMemcpy(d_Mat_a, h_a, nBytes, cudaMemcpyHostToDevice);// configdim3 block(4, 2); // 二维线程块(x,y)(4,2)dim3 grid((nxblock.x-1) / block.x, (nyblock.y-1)/block.y); // 二维网格(2,3)// 直接nx/block.x 8/42. (84-1)/42.// invoke kernelprintThreadIdx grid, block (d_Mat_a, nx, ny);cudaDeviceSynchronize();// free memorycudaFree(d_Mat_a);free(h_a);// reset devicecudaDeviceReset();return 0; } 可以看到全局索引值就是矩阵中存储的值。
http://www.tj-hxxt.cn/news/218297.html

相关文章:

  • 企业网站建立教程网站通栏尺寸
  • 九江做网站哪家便宜建站精灵网站模板
  • 网站建设汇报ppt建站宝盒成品网站演示
  • 北京网站首页排名公司四川省建设厅网站首页
  • h5类型的网站是怎么做的网站备案的影布怎么做
  • 宜春网站建设公司信阳网站建设策划方案
  • 定制网站费用网站后台域名
  • 一个公司可以有两个网站吗亚洲杯中国菲律宾
  • 建网站需要什么资料wordpress后台相应慢
  • 做外贸网站需要请外贸文员吗建设电商网站的总结报告
  • 龙华区深圳北站泉州四方网站开发
  • 网站开发字体过大房地产网站广告销售怎么做
  • html5做的网站公司logo设计logo
  • 淘宝网站那个做的大连市营商环境建设局网站
  • 搜索引擎友好的网站有哪些特点网站制作完成之后我们便进入了什么阶段
  • 网站图片命名规范网络营销推广公司获客
  • 可做长图的网站wordpress前台禁止下载文件
  • 霸州放心的网络建站学做电商的网站有哪些
  • 劳务派遣东莞网站建设商贸营销型网站案例
  • 网站与网页之间的区别是什么wordpress布局可视化
  • 网站建设搭建公司毕设做网站答辩会要求当场演示吗
  • 网站建设需求精确表杭州seo排名收费
  • 建设银行淮安招聘网站叙述网站的建设意义所在
  • 可以做请柬的网站网站开发项目意义
  • 怎样注册一个网站平台重庆市建设工程信息网怎么录项目信息
  • 网站的后期运营及维护费用多语言网站怎么实现的
  • 建设网站所有步骤外包服务公司排名
  • 个人网站注册费用谷歌收录wordpress
  • 制作网站先做前端还是后端西安制作网站软件
  • 天猫网站左侧菜单向右滑出的导航菜单做众筹网站要什么资质