博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
cubla sample-code
阅读量:6303 次
发布时间:2019-06-22

本文共 2149 字,大约阅读时间需要 7 分钟。

cublasSscal
//Example 1. Application Using C and CUBLAS: 1-based indexing#include 
#include
#include
#include "cublas_v2.h"#include
#define M 6#define N 5#define IDX2F(i,j,ld) ((((j)-1)*(ld))+((i)-1))static __inline__ void modify (cublasHandle_t handle, float*m, int ldm, int n, int p, int q, float alpha, float beta){ cublasSscal (handle, n-p+1, &alpha, &m[IDX2F(p,q,ldm)], ldm); cublasSscal (handle, ldm-p+1, &beta, &m[IDX2F(p,q,ldm)], 1);}int main (void){ cudaError_t cudaStat; cublasStatus_t stat; cublasHandle_t handle; int i, j; float* devPtrA; float* a = 0; a = (float*)malloc (M * N * sizeof(*a)); if(!a) { printf("host memory allocation failed"); return EXIT_FAILURE; } for(j = 1; j <= N; j++) { for(i = 1; i <= M; i++) { a[IDX2F(i,j,M)] = (float)((i-1) * M + j); printf("%7.0f",a[IDX2F(i,j,M)]); }printf("\n"); }printf("\n"); cudaStat = cudaMalloc ((void**)&devPtrA, M*N*sizeof(*a)); if(cudaStat != cudaSuccess) { printf ("device memory allocation failed"); return EXIT_FAILURE; } stat = cublasCreate(&handle); if(stat != CUBLAS_STATUS_SUCCESS) { printf ("CUBLAS initialization failed\n"); return EXIT_FAILURE; } stat = cublasSetMatrix (M, N, sizeof(*a), a, M, devPtrA, M); if(stat != CUBLAS_STATUS_SUCCESS) { printf ("data download failed"); cudaFree (devPtrA); cublasDestroy(handle); return EXIT_FAILURE; } modify (handle, devPtrA, M, N, 2, 3, 16.0f, 12.0f); stat = cublasGetMatrix (M, N, sizeof(*a), devPtrA, M, a, M); if(stat != CUBLAS_STATUS_SUCCESS) { printf("data upload failed"); cudaFree (devPtrA); cublasDestroy(handle); return EXIT_FAILURE; } cudaFree (devPtrA); cublasDestroy(handle); for(j = 1; j <= N; j++) { for(i = 1; i <= M; i++) { printf ("%7.0f", a[IDX2F(i,j,M)]); } printf ("\n"); } free(a); return EXIT_SUCCESS;}

转载于:https://www.cnblogs.com/zhxfl/p/3905818.html

你可能感兴趣的文章
Spring IOC启动流程学习(一)
查看>>
python tornado
查看>>
Android 自动换行的LinearLayout
查看>>
MacBook Pro电池校正
查看>>
初级python学习记录
查看>>
Scrapy爬虫 -- 02
查看>>
使用Kendo UI Web创建自定义组件(基础篇)
查看>>
GuozhongCrawler git地址
查看>>
我来了
查看>>
前端js正则的一个实例:过滤“rm -rf /”
查看>>
DOS窗口TELNET登陆终端批量执行命令
查看>>
转:Android世界的15款开源的游戏开发引擎
查看>>
前景检测算法_4(opencv自带GMM)
查看>>
PHP内核探索之变量(4)- 数组操作
查看>>
6个关于dd命令备份Linux系统的例子
查看>>
面向对象、面向服务、面向组件三种编程模式有什么区别?分别适用于哪些领域的开发?...
查看>>
监听视图树 ViewTreeObserver 获取View的宽高
查看>>
学习笔记 --- 缓存、动态页面静态化、网站优化
查看>>
linux 开机批量启动程序
查看>>
ANDROID L——Material Design具体解释(主题和布局)
查看>>