Firefly开源社区

打印 上一主题 下一主题

[应用开发] 如何在3588开发板上进行OpenCL开发

26

积分

0

威望

0

贡献

技术小白

积分
26

如何在3588开发板上进行OpenCL开发

发表于 2022-4-24 15:54:16      浏览:6243 | 回复:7        打印      只看该作者   [复制链接] 楼主
问题描述及复现步骤:
通过clinfo可以查看设备的信息,但没有找到OpenCL相关的头文件和动态库,如何开发及编译OpenCL代码?

log.txt

10.15 KB, 下载次数: 3, 下载积分: 灯泡 -1 , 经验 -1

回复

使用道具 举报

26

积分

0

威望

0

贡献

技术小白

积分
26
发表于 2022-4-24 17:18:36        只看该作者  沙发
1、首先在3588环境下使用 sudo find / -name *mali.so 找到libmali.so ,这个动态库中包含OpenCL相关操作。
2、从官网下载头文件 https://github.com/KhronosGroup/OpenCL-Headers
3、将下载的OpenCL-Headers文件按照如下方式重新组织
include/
├── CL
│   ├── cl_d3d10.h
│   ├── cl_d3d11.h
│   ├── cl_dx9_media_sharing.h
│   ├── cl_dx9_media_sharing_intel.h
│   ├── cl_egl.h
│   ├── cl_ext.h
│   ├── cl_ext_intel.h
│   ├── cl_gl_ext.h
│   ├── cl_gl.h
│   ├── cl.h
│   ├── cl_half.h
│   ├── cl_icd.h
│   ├── cl_layer.h
│   ├── cl_platform.h
│   ├── cl_va_api_media_sharing_intel.h
│   └── cl_version.h
└── opencl.h
4、此时已经有动态库和头文件,可以开始编写一段代码
  1. #include<opencl.h>
  2. #include<stdio.h>
  3. #include<string.h>
  4. #include<malloc.h>

  5. int main()
  6. {
  7.     cl_platform_id *platform;
  8.     cl_uint num_platform;
  9.     cl_int err;
  10.     err = clGetPlatformIDs(0, NULL, &num_platform);
  11.     platform = (cl_platform_id*)malloc(sizeof(cl_platform_id)*num_platform);
  12.     err = clGetPlatformIDs(num_platform, platform, NULL);

  13.     for(int i=0; i<num_platform; i++)
  14.     {
  15.         size_t size;
  16.         err = clGetPlatformInfo(platform[i], CL_PLATFORM_NAME, 0, NULL, &size);
  17.         char *PName = (char *)malloc(size);
  18.         err = clGetPlatformInfo(platform[i], CL_PLATFORM_NAME, size, PName, NULL);
  19.         printf("\nCL_PLATFORM_NAME:%s\n", PName);
  20.         free(PName);

  21.     }

  22.     return 0;
  23. }
复制代码


5、编译,执行如下编译命令
gcc platform.cpp -o platform -lmali -I/home/firefly/include -L/usr/lib/aarch64-linux-gnu/

6、执行
~/src$ ./platform

CL_PLATFORM_NAME:ARM Platform

点评

可以用python版本的吗,pyopencl,  发表于 2023-6-12 17:48
Good!  发表于 2022-4-25 09:14
回复

使用道具 举报

1万

积分

14

威望

13

贡献

管理员

Rank: 9Rank: 9Rank: 9

积分
11182

优秀版主

发表于 2022-4-25 09:14:31        只看该作者  板凳
点赞!
回复

使用道具 举报

9

积分

0

威望

0

贡献

吃瓜的群众

积分
9
QQ
发表于 2022-11-18 11:21:37        只看该作者  地板
神秘路人 发表于 2022-4-24 17:18
1、首先在3588环境下使用 sudo find / -name *mali.so 找到libmali.so ,这个动态库中包含OpenCL相关操作。 ...

老哥 您用opencl加速计算实现了 能否留个联系方式 万分感谢
回复

使用道具 举报

28

积分

0

威望

0

贡献

技术小白

积分
28
发表于 2023-6-12 17:44:01        只看该作者  5#
wx__wq5wRK 发表于 2022-11-18 11:21
老哥 您用opencl加速计算实现了 能否留个联系方式 万分感谢

大哥,你现在实现了吗?
回复

使用道具 举报

28

积分

0

威望

0

贡献

技术小白

积分
28
发表于 2023-6-12 17:55:47        只看该作者  6#
楼主实现了吗?
如果用python版本的可以吗,pyopencl
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

友情链接 : 爱板网 电子发烧友论坛 云汉电子社区 粤ICP备14022046号-2
快速回复 返回顶部 返回列表