#include<stdio.h>
#include<stdlib.h>
#include<cuda_runtime.h>
#include <device_launch_parameters.h>
//并行矩阵乘法kernel函数
__global__ void MatrixMultiply(int *M_d, int *N_d, int *P_d, int width)
{
int col = threadIdx.x;
int row = threadIdx.y;
int P = 0;
for (int k = 0; k < width; ++k)
{
int M = M_d[row * width + k];//读入M_d矩阵的一行
int N = N_d[k * width + col];//读入N_d矩阵的一列
P += M * N;
}
P_d[row * width + col] = P;//每个线程计算P_d矩阵的一个元素
}
//生成随机矩阵M和N
void GenerateMatrix(int* M, int width)
{
int i, j;
for (i = 0; i < width; i++)
{
for (j = 0; j < width; j++)
{
M[i * width + j] = (int)rand()%100;//生成0-100随机整数
}
}
}
//打印矩阵
void printMatrix( int *M, int width)
{
for(int i = 0; i < width * width; i++)
{
if((i + 1) % width)