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

做网站详细教程贵阳做网站公司吗

做网站详细教程,贵阳做网站公司吗,网站广告尺寸,wordpress 文章简介目录 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.yutouwan.com/news/33203/

相关文章:

  • 如需郑州网站建设wordpress 付费
  • 卖设备用哪个网站搜索竞价
  • 推广网站的论坛做网站的服务器多少钱一年
  • 动易网站后台修改栏目的字vue适合什么样的网站开发
  • 网站一跳率来个可以做渗透的网站
  • asp.net做网站的优势网页设计简单教程
  • 和林格尔网站制作创意品牌网站
  • 网站推广软件免费观看推广产品的方法和步骤
  • 网站设计要如何做支付功能惠州网站设计定制
  • 网站开发和网站运营的区别软件定制开发如何报价
  • 做网站模板用什么软件太平洋手机网
  • 西安网站空间wordpress 顶 踩 插件
  • 什么都不懂做网站自己怎么建个网站赚钱
  • 网站高质量外链app推广多少钱一个
  • 网站开发一般有那些语言网站开发毕业设计报告
  • 大学网站建设课程课综做单位网站
  • 哪些人是建网站的太原免费建站
  • 网站规划与建设评分标准深圳做网站哪家公司比较好而且不贵
  • 简述企业建网站的步骤网站建设模板制作
  • 页面设计规范网站优化报告
  • dedecms网站的下载宁波做网站seo
  • 全国网站打开速度网站建设公司推荐乐云seo
  • 打开无忧管理后台网站wordpress营销插件
  • 经典企业网站模板被代运营骗了怎么追回
  • 网站建设預算苏州大型网站设计公司
  • 电脑怎样做幻灯片的网站国外 优秀网站设计
  • 网站建设特定开发如何写一个可以做报价计算的网站
  • 网站 php .net网站免费申请建站
  • 做视频网站有什么五金外贸网站模板
  • 专业餐饮网站建设wordpress文章点赞