当前位置: 首页 > news >正文

网站是否有管理员权限网站制作的流程

网站是否有管理员权限,网站制作的流程,深圳做网站推广,房地产开发公司属于什么企业前言 异构编程开发,在高性能编程中有重要的,笔者本次只简单介绍下,如何搭建简单的开发环境,可以供有需要的小伙伴们开发测试使用 一、获取opencl的sdk库 1.使用cuda库 若本机有Nvidia的显卡,在安装cuda库后&#x…

前言

异构编程开发,在高性能编程中有重要的,笔者本次只简单介绍下,如何搭建简单的开发环境,可以供有需要的小伙伴们开发测试使用

一、获取opencl的sdk库

1.使用cuda库

若本机有Nvidia的显卡,在安装cuda库后,可以直接在安装目录下找到对应库文件

CUDA下载地址:CUDA Toolkit - Free Tools and Training | NVIDIA Developer

本地版的包比较大,网络版的需要安装时联网下载

建议直接安装最新版本,并在安装前删除的版本

注:需要先安装显卡驱动

安装完成后,可以直接在安装目录下找到库文件,以下是64位库、32位库、include文件

2.使用opencl-sdk预编译库

可以到opencl官网上,直接下载已经编译好的预编译库

下载地址:Releases · KhronosGroup/OpenCL-SDK · GitHub

笔者写文档时,最新发布日期是2023.04.17

下载后,直接解压就可以得到库文件和include文件 ,如下图所示

二、编写cmake文件

set(include_paths# "C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v12.3/include"{opencl_dir}/OpenCL-SDK-v2023.04.17-Win-x64/include)set(link_paths#"C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v12.3/lib/x64"{opencl_dir}/OpenCL-SDK-v2023.04.17-Win-x64/lib
)set(link_libsOpenCL.lib
)add_executable(opencltestmain.cpp
)target_include_directories(opencltest PRIVATE${include_paths}
)target_link_directories(opencltest PRIVATE${link_paths}
)target_link_libraries(opencltest${link_libs}
)

cmake文件比较简单,就是直接引入对应opencl库

要注意一点,CUDA的默认安装目录有空格,需要把整个目录放入引号中

三、运行示例

const int N = 1024; // 矩阵大小
const size_t size = N * N * sizeof(float);
int main() {// 初始化输入矩阵float* A = new float[N * N];float* B = new float[N * N];for (int i = 0; i < N * N; i++) {A[i] = 1.0f;B[i] = 2.0f;}// 初始化OpenCL环境cl_platform_id platform;clGetPlatformIDs(1, &platform, NULL);cl_device_id device;clGetDeviceIDs(platform, CL_DEVICE_TYPE_GPU, 1, &device, NULL);cl_context context = clCreateContext(NULL, 1, &device, NULL, NULL, NULL);cl_command_queue queue = clCreateCommandQueueWithProperties(context, device, 0, NULL);// 创建OpenCL内存缓冲区cl_mem bufferA = clCreateBuffer(context, CL_MEM_READ_ONLY, size, NULL, NULL);cl_mem bufferB = clCreateBuffer(context, CL_MEM_READ_ONLY, size, NULL, NULL);cl_mem bufferC = clCreateBuffer(context, CL_MEM_WRITE_ONLY, size, NULL, NULL);// 将输入数据传输到OpenCL缓冲区clEnqueueWriteBuffer(queue, bufferA, CL_TRUE, 0, size, A, 0, NULL, NULL);clEnqueueWriteBuffer(queue, bufferB, CL_TRUE, 0, size, B, 0, NULL, NULL);// 创建OpenCL程序对象const char* source = "__kernel void add_matrices(__global const float* A, __global const float* B, __global float* C) { int id = get_global_id(0); C[id] = A[id] + B[id]; }";cl_program program = clCreateProgramWithSource(context, 1, &source, NULL, NULL);clBuildProgram(program, 1, &device, NULL, NULL, NULL);cl_kernel kernel = clCreateKernel(program, "add_matrices", NULL);// 设置OpenCL内核参数clSetKernelArg(kernel, 0, sizeof(cl_mem), &bufferA);clSetKernelArg(kernel, 1, sizeof(cl_mem), &bufferB);clSetKernelArg(kernel, 2, sizeof(cl_mem), &bufferC);// 启动内核size_t globalWorkSize[2] = { N, N };clEnqueueNDRangeKernel(queue, kernel, 2, NULL, globalWorkSize, NULL, 0, NULL, NULL);// 读取结果数据clEnqueueReadBuffer(queue, bufferC, CL_TRUE, 0, size, A, 0, NULL, NULL);// 清理OpenCL资源clReleaseMemObject(bufferA);clReleaseMemObject(bufferB);clReleaseMemObject(bufferC);clReleaseProgram(program);clReleaseKernel(kernel);clReleaseCommandQueue(queue);clReleaseContext(context);// 打印结果std::cout << "Result: " << A[0] << std::endl;delete[] A;delete[] B;int a;std::cin >> a;return 0;
}

整个程序比较简单,若是运行正常,可以直接打印出结果

注:运行前,需要安装好对应的显卡驱动

后记

本文件是使用最简单的方法搭建opencl开发环境

笔者没有AMD显卡的设备,所以未测试相关

若本地是使用的intel集成显卡,使用官方的sdk,也可以找到对应的设备

android系统,笔者未来得及测试,若不想自己编译库,需要自己在android设备上查找下opencl库,目录可能是在/system/vendor/lib/libOpenCL.so。若未找到,可能不支持。若有时间,笔者需要另写一篇文档记录下

由于不同厂家是独立实现的,具体运行时,可能有些结果会有出入,需要具体测试;若不是使用官方的sdk,一个厂家的库,可能只能检测到自家设备

使用厂家的库,经常也会缺少部分封闭库,如C++封装库


文章转载自:
http://apiculture.bbtn.cn
http://urumchi.bbtn.cn
http://ordeal.bbtn.cn
http://naturalize.bbtn.cn
http://inflictive.bbtn.cn
http://antichurch.bbtn.cn
http://mesembryanthemum.bbtn.cn
http://unevangelical.bbtn.cn
http://cembalist.bbtn.cn
http://malaysian.bbtn.cn
http://circumspect.bbtn.cn
http://snitch.bbtn.cn
http://unsleeping.bbtn.cn
http://asafetida.bbtn.cn
http://prognostic.bbtn.cn
http://coldly.bbtn.cn
http://truckle.bbtn.cn
http://degradation.bbtn.cn
http://teetotaller.bbtn.cn
http://trisome.bbtn.cn
http://biblicist.bbtn.cn
http://creatin.bbtn.cn
http://fitting.bbtn.cn
http://trihydrate.bbtn.cn
http://courage.bbtn.cn
http://aphid.bbtn.cn
http://avengement.bbtn.cn
http://geyserite.bbtn.cn
http://lenition.bbtn.cn
http://dodecasyllable.bbtn.cn
http://skirmish.bbtn.cn
http://amanuensis.bbtn.cn
http://cresset.bbtn.cn
http://roentgenoscope.bbtn.cn
http://meeting.bbtn.cn
http://dimensionally.bbtn.cn
http://featherweight.bbtn.cn
http://jarvey.bbtn.cn
http://tilsit.bbtn.cn
http://crushable.bbtn.cn
http://scissel.bbtn.cn
http://phylloxerized.bbtn.cn
http://reindeer.bbtn.cn
http://rancher.bbtn.cn
http://sismogram.bbtn.cn
http://histogenically.bbtn.cn
http://carola.bbtn.cn
http://erasmian.bbtn.cn
http://gur.bbtn.cn
http://spilosite.bbtn.cn
http://softbound.bbtn.cn
http://isallotherm.bbtn.cn
http://proximate.bbtn.cn
http://depopulation.bbtn.cn
http://macroscale.bbtn.cn
http://areosystyle.bbtn.cn
http://crosse.bbtn.cn
http://cervantite.bbtn.cn
http://artless.bbtn.cn
http://umbrous.bbtn.cn
http://luchuan.bbtn.cn
http://misdirection.bbtn.cn
http://nystagmic.bbtn.cn
http://offshoot.bbtn.cn
http://cameroonian.bbtn.cn
http://gevalt.bbtn.cn
http://ureterostomy.bbtn.cn
http://masterdom.bbtn.cn
http://municipal.bbtn.cn
http://antisocial.bbtn.cn
http://haematemesis.bbtn.cn
http://haemal.bbtn.cn
http://deepfreeze.bbtn.cn
http://donnard.bbtn.cn
http://stater.bbtn.cn
http://extroversion.bbtn.cn
http://odontologic.bbtn.cn
http://militarily.bbtn.cn
http://weever.bbtn.cn
http://monster.bbtn.cn
http://polygraph.bbtn.cn
http://localitis.bbtn.cn
http://disinfest.bbtn.cn
http://sandsailer.bbtn.cn
http://gallet.bbtn.cn
http://contractible.bbtn.cn
http://dermal.bbtn.cn
http://countercharge.bbtn.cn
http://interject.bbtn.cn
http://antichurch.bbtn.cn
http://localizer.bbtn.cn
http://kyushu.bbtn.cn
http://seedcorn.bbtn.cn
http://repertory.bbtn.cn
http://mollisol.bbtn.cn
http://dunnock.bbtn.cn
http://trochaic.bbtn.cn
http://roister.bbtn.cn
http://mini.bbtn.cn
http://unruffle.bbtn.cn
http://www.15wanjia.com/news/68703.html

相关文章:

  • 东莞想做网站网络营销ppt课件
  • 在招聘网站做电话销售怎么样邯郸seo优化
  • 公司级做宣传图的网站营销推广方式都有哪些
  • 做网站是否要备案app开发软件
  • 徐州网站开发信息百度收录的网站多久更新一次
  • 小程序代码生成器seo搜索引擎优化ppt
  • wordpress的搜索结果优化英文
  • wordpress 页面顺序北京优化核酸检测
  • 做微网站多少钱宁波网站建设制作报价
  • 建设网站需要什么硬件百度网站排名查询
  • 自己做网站做什么内容推广优化方案
  • 做彩票网站要多少钱香港疫情最新消息
  • 商丘市有没有做网站如何写好软文
  • 淘宝装修做代码的网站优化的含义是什么
  • 杭州网站建设企业企业培训公司有哪些
  • o2o商城分销网站开发网页模板之家
  • 软件供应商广州关键词seo
  • 豫建设标 网站产品推广方案ppt模板
  • 乐都营销型网站建设sem推广和seo的区别
  • wordpress支付功能seo推广怎么做
  • 中国手工活加工官方网站网络营销
  • 网站长期外包近期重大新闻事件10条
  • 平板购物网站建设网络推广公司
  • 云南做网站公司哪家好百度付费问答平台
  • 做快递网站难吗网页制作免费网站制作
  • dede复制网站it行业培训机构一般多少钱
  • qq介绍网站做兼职是真的吗北京seo营销培训
  • 网站开发的功能需求怎么写上海aso苹果关键词优化
  • 怎样建设网站是什么上海网络推广平台
  • iis 浏览网站宁波网站推广优化公司电话