#include <stdio.h>#define BLOCK_NUM 8#define THREAD_NUM 32#define R_SIZE BLOCK_NUM * THREAD_NUM#define M_SIZE R_SIZE*R_SIZEvoid __global__ matmul1(int *da, int *db, int *dres);void __global__ matmul1(int *da, int *db, int *dres){ // 获
文章目录前言前言 本教程实现一个A[5] 和 B[3][5]两个矩阵之间欧氏距离的CUDA代码。#include <stdio.h>#define N 5#define D 3 #define SIZE N*Dvoid __global__ cpt(int *da, int *db, int *dres);void __global__ cpt(int *da, int *db, int *dres){ int tid = threadIdx.x; /
关键是线程分配方式,将一个大矩阵分成一片一片的矩阵,用线程的ny,nx来分别表示矩阵的行和列,但由于一般矩阵都是用一个一维数组进行存储,所以最终对应到全局内存的index还得利用行和列转成一维的index。#include <stdio.h>const int N = 128; // matrix' dimconst int TILE_DIM = 32; // block sizeconst int SIZE = sizeof(int) * N * N; // memoryv
前言 由于最近忙着秋招,本系列博客最近只记录下自己学CUDA的例子,不会做出注释,后期有空会补上基础知识和代码详解。#include <stdio.h>const double a = 1.23;const double b = 2.34;void __global__ add(const double *x, const double *y, const double *z,const int N );void __global__ add(const double *x,
#include <stdio.h>#include <vector>#include <iostream>using namespace std;void __global__ bisearch(int *d, int *dval, int *pos, const int N);void __global__
Copyright © 2005-2024 51CTO.COM 版权所有 京ICP证060544号