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

如何写网站建设实验结果分析长治软件制作平台

如何写网站建设实验结果分析,长治软件制作平台,扁平化设计网站 源码,成都大型商城网站建设矩阵乘可以利用gpu多线程并行的特点进行加速计算#xff0c;但是传统简单的方法需要多次读取数据到寄存器中#xff0c;增加耗时#xff0c;因此利用gpu的共享内存可以被一个block内的所有线程访问到的特性#xff0c;结合tiling技术进行加速计算。 理论部分不解释了#…矩阵乘可以利用gpu多线程并行的特点进行加速计算但是传统简单的方法需要多次读取数据到寄存器中增加耗时因此利用gpu的共享内存可以被一个block内的所有线程访问到的特性结合tiling技术进行加速计算。 理论部分不解释了网上有很多关键在于网上很多利用共享内存计算的代码存在错误大部分只有在设置blockDim.x blockDim.y 的时候凑巧能对齐index给出正确的结果若这俩不等结果就错了这里给出一个修正的版本 #include stdio.h #include stdlib.h #include time.h #include math.h #include assert.h #include cuda_runtime.h #include device_launch_parameters.h#define M 32 #define K 32 #define N 32void initial(float *array, int size) {for (int i 0; i size; i){array[i] (float)(1);} }void printMatrix(float *array, int row, int col) {float *p array;for (int y 0; y row; y){for (int x 0; x col; x){printf(%.2f , p[x]);}p p col;printf(\n);}return; }__global__ void multiplicateMatrixOnDevice(float *array_A, float *array_B, float *array_C, int M_p, int K_p, int N_p) {int ix threadIdx.x blockDim.x*blockIdx.x;//row numberint iy threadIdx.y blockDim.y*blockIdx.y;//col numberif (ix N_p iy M_p){float sum 0;for (int k 0; k K_p; k){sum array_A[iy*K_p k] * array_B[k*N_p ix];}array_C[iy*N_p ix] sum;} }// Compute C A * B // M, K, K, N, M, N __global__ void matrixMultiplyShared(float *A, float *B, float *C,int numARows, int numAColumns, int numBRows, int numBColumns, int numCRows, int numCColumns) {// Insert code to implement matrix multiplication here// You have to use shared memory for this MP// 1. 相比网上代码修改这里的index__shared__ float sharedM[8][16]; __shared__ float sharedN[16][8]; int bx blockIdx.x; int by blockIdx.y; int tx threadIdx.x; int ty threadIdx.y; int row by * blockDim.y ty; int col bx * blockDim.x tx; float Csub 0.0;// for (int i 0; i 2; i) for (int i 0; i (int)(ceil((float)numAColumns / blockDim.x)); i){if (i*blockDim.x tx numAColumns row numARows)sharedM[ty][tx] A[row*numAColumns i*blockDim.x tx];elsesharedM[ty][tx] 0.0;// 2. 相比网上代码修改这里的indexif (i*blockDim.x tx numBRows col numBColumns)sharedN[tx][ty] B[(i*blockDim.x tx)*numBColumns col];elsesharedN[tx][ty] 0.0;__syncthreads();// if (blockIdx.x 0 blockIdx.y 1 threadIdx.x 0 threadIdx.y 0 ) {// printf(sharedM: \n);// for (int i 0; i 8; i) {// for (int j 0; j 16; j) {// printf(%f , sharedM[i][j]);// }// printf(\n);// }// printf(sharedN: \n);// for (int i 0; i 16; i) {// for (int j 0; j 8; j) {// printf(%f , sharedM[i][j]);// }// printf(\n);// }// }for (int j 0; j blockDim.x; j)// 3. 相比网上代码修改这里的indexCsub sharedM[ty][j] * sharedN[j][ty];__syncthreads();}if (row numCRows col numCColumns)C[row*numCColumns col] Csub;}int main(int argc, char **argv) {clock_t start 0, finish 0;float time;int Axy M * K;int Bxy K * N;int Cxy M * N;float *h_A, *h_B, *hostRef, *deviceRef;h_A (float*)malloc(Axy * sizeof(float));h_B (float*)malloc(Bxy * sizeof(float));int nBytes M * N * sizeof(float);hostRef (float*)malloc(Cxy * sizeof(float));deviceRef (float*)malloc(Cxy * sizeof(float));initial(h_A, Axy);initial(h_B, Bxy);// printMatrix(h_A, M, K);float *d_A, *d_B, *d_C;cudaMalloc((void**)d_A, Axy * sizeof(float));cudaMalloc((void**)d_B, Bxy * sizeof(float));cudaMalloc((void**)d_C, Cxy * sizeof(float));cudaMemcpy(d_A, h_A, Axy * sizeof(float), cudaMemcpyHostToDevice);cudaMemcpy(d_B, h_B, Bxy * sizeof(float), cudaMemcpyHostToDevice);int dimx 16;int dimy 16;dim3 block(dimx, dimy);dim3 grid((M block.x - 1) / block.x, (N block.y - 1) / block.y);cudaEvent_t gpustart, gpustop;float elapsedTime 0.0;cudaEventCreate(gpustart);cudaEventCreate(gpustop);cudaEventRecord(gpustart, 0);// multiplicateMatrixOnDevicegrid,block (d_A, d_B, d_C, M, K, N);matrixMultiplyShared grid, block (d_A, d_B, d_C, M, K, K, N, M, N);cudaDeviceSynchronize();cudaEventRecord(gpustop, 0);cudaEventSynchronize(gpustop);cudaEventElapsedTime(elapsedTime, gpustart, gpustop);cudaEventDestroy(gpustart);cudaEventDestroy(gpustop);cudaMemcpy(deviceRef, d_C, Cxy * sizeof(float), cudaMemcpyDeviceToHost);printMatrix(deviceRef, M, N);return 0; }
http://www.hkea.cn/news/14512915/

相关文章:

  • 泗水县建设局的网站怎么打开二手网站建设论文答辩
  • 下载类网站开发条件wordpress开发手册chm
  • 中国数据统计网站怎样开一家公司
  • 群晖网站建设处理错误500小企业网站制作
  • 辽阳网站建设学校设计师找灵感的网站
  • 设计感网站有哪些方面上海网站建设 s
  • 邮件设计网站seo优化有哪些
  • 织梦印刷公司网站源码做网站的北京
  • 做临时网站企业年报网上申报系统网址
  • 织梦网站栏目管理wordpress更改ip后登录密码
  • 东营有什么网站建设公司三合一网站建设公司
  • 北京企业网站建设方济南公司网站建设公司哪家好
  • 郴州网站制作公司网页网站建设ppt模板下载
  • 手机好看的网站电子书城网站开发项目概况
  • 网站开发项目名电子商务网站建设的开发流程
  • 国内电商网站跳出率是多少包头移动的网站建设
  • 上海自助建站官网福永响应式网站多少钱
  • 网站项目报价方案做网站的公司 成都
  • dede旅游网站源码免费网页上传网站
  • 遵化建设招标网站网站搭建入门
  • 门户网站开发公司平台寻找哈尔滨网站建设
  • 营销网站的主题 定位 修改建议软件工程师报考条件
  • 广东建设监理网站wordpress 弹出搜索框
  • 网站建设实训报告要求网页视觉设计是什么
  • 网站网页设计培训班如何自建网站做外贸
  • 淘宝上成都网站建设视频类网站开发经验
  • 自学网站设计与建设深圳网页设计兴田德润放心
  • 网站建设的行业新闻wordpress 无广告视频插件下载
  • 如何提高网站seo排名本地wordpress安装
  • 友情链接中有个网站域名过期了会影响南阳做网站价格