ARM 嵌入式端算法加速

OpenCL 嵌入式端算法加速

1. 嵌入式端算法加速架构

1.1 OpenMP

1.1.1 平台是否支持

简单理解,我们使用 OpenMP 就可以非常简单地实现多线程有多简单呢,查看是否支持 OpenMP在使用 OpenMP 完成多线程任务时,首先得查看当前编译器是否支持 OpenMP,我在 Linux 上的 GCC 编译器是默认支持 OpenMP 的,只需在生成可执行文件的命令中加入 -fopenmp 即可下面的代码也可以查看当前编译器是否支持 OpenMP。

check_openmp.c
#include <stdio.h>
int main()
{
   
   
#if _OPENMP
printf("support openmp\n");
#else
printf("not support openmp\n");
#endif
return 0;
}

1.1.2 设置虚拟内核

输出结果如下,因为没有指定线程数,所以默认使用 CPU 核心数量的线程,这里在虚拟机(cpu四个核心)
当然我们也可以指定核心数量,代码如下

#include <stdio.h>
int main(void)
{
   
   
# pragma omp parallel num_threads(6)
{
   
   
printf("Hello, world. \n");
}

return 0;
}

输出结果如下,你可能会想为啥可以指定大于核心的线程数,不是只有四个核心吗,其实不影响的,CPU也不看你的核心数,只是知道该取指令进行计算,一般使用大于等于核心
这里的 omp.h 主要包括一些 openmp 的库函数,比如 omp_get_thread_num() 获取当前线程 id。

1.1.3 并行计算示例

下面使用多线程完成加法
loop_add.c

#include <stdio.h>
#include <omp.h>
#include <stdlib.h>
int</
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值