CUDA和LAPACK混编的MakeFile文件

本文分享了一个基于CUDA和LAPACK混合编程的例子,包括Makefile配置及源代码实现,展示了如何在GPU上利用CUDA加速矩阵运算,并通过LAPACK进行数值计算。

最近在写CUDA和LAPACK混编的程序,贴出Makefile文件和源程序文件,供大家参考。
Makefile文件

# Makefile for GPU program based on SU

# Home path
SU_HOME = /home/ry/su
SU_HOME1 = /home/ry/su/src/Complex
MPI_HOME = /home/ry/openmpi
CUDA_HOME = /home/ry/cuda9

LAPACK_HOME = /home/ry/Lapack/lapack-3.8.0
# CLAPACK_HOME = /home/ry/Clapack/CLAPAC


# Which compiler
NVCC = nvcc 

# Include path
CFLAGS = -I$(SU_HOME)/include -I$(SU_HOME1)/include -I$(MPI_HOME)/include \
         -I$(CUDA_HOME)/include -I$(LAPACK_HOME)/LAPACKE/include \
         -I$(CLAPACK_HOME)/INCLUDE

# Lib path
LFLAGS = -L$(SU_HOME)/lib -L$(SU_HOME1)/lib -L$(MPI_HOME)/lib \
         -L$(CUDA_HOME)/lib64

LD = -lsu -lpar -lcwp -lm -lcublas -lcurand -lcufft -lcusparse -llapack

CU_APPS= lapack_test

all: ${CU_APPS}

%: %.cu
    -$(NVCC) -O2 -arch=sm_35 $(@F).cu -o $@ $(LD) $(LFLAGS) $(CFLAGS)

clean:
    rm -f ${CU_APPS} 

源程序文件

#include "./common.h"
#include <stdio.h>
#include <stdlib.h>
#include <cusparse_v2.h>
#include <cusparse.h>
#include <cuda.h>
#include <cuda_runtime.h>

#include <stdio.h>
#include "time.h"
#include "par.h"
#include "su.h"
#include "segy.h"

#include "lapacke.h"

extern lapack_int LAPACKE_dgesv( int matrix_order, lapack_int n, lapack_int nrhs,
                          double* a, lapack_int lda, lapack_int* ipiv,
                          double* b, lapack_int ldb );

extern lapack_int LAPACKE_dgetrf(int nx, int nz  );


int main(int argc, char **argv)
{
    int A[5][5] = {3,2,0,1,0,
                   2,3,2,0,1,
                   0,2,3,2,0,
                   1,0,2,3,2,
                   0,1,0,2,3};

    int nx;
    int nz;

    nx=5;
    nz=5;



    return 0;

}





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Coder802

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值