![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
CUDA编程
武乐乐~
努力上进的懒虫
展开
-
CUDA实现矩阵复制
关键是线程分配方式,将一个大矩阵分成一片一片的矩阵,用线程的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原创 2021-07-25 21:39:54 · 653 阅读 · 0 评论 -
CUDA实现L2欧式距离
文章目录前言前言 本教程实现一个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; /原创 2021-07-23 19:57:35 · 443 阅读 · 0 评论 -
CUDA实现矩阵相乘
#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){ // 获原创 2021-07-22 19:59:52 · 2010 阅读 · 1 评论 -
CUDA实现高效查找--审核未通过?
#include <stdio.h>#include <vector>#include <iostream>using namespace std;void __global__ bisearch(int *d, int *dval, int *pos, const int N);void __global__ bisearch(int *d, int *dval, int *pos, const int N){ int tid = block原创 2021-07-20 21:21:18 · 317 阅读 · 0 评论 -
CUDA编程(一):实现两个数组相加
前言 由于最近忙着秋招,本系列博客最近只记录下自己学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,原创 2021-07-19 21:33:30 · 1323 阅读 · 3 评论