MIC的异步传输
关于signal和wait,属于异步传输的语法,即CPU端无需等待offload语句返回,即可异步运行下面的代码。一般用于启动MIC代码段后,并发执行CPU代码,达到同步执行的目的。另外一种用法是使用offload_transfer和offload_wait语句,这两个语句与offload类似,但只负责数据传输,后面不加入计算代码。其中offload_transfer支持的参数与offload语句相同,offload_wait语句仅支持target,if,wait三个参数。两种用法的signal和wait的使用方法是相同的,signal语句在offload代码段结束后发送一个信号,wiat语句负责接收,所以二者一定是成对使用,但是wait语句可以一次等待多个信号,所以二者语句数量未必相等。signal和wait的参数tag,在C语言中,是传输的其中的一个数组的指针,即in/out/inout中的一个数组名,同时传输多个数组的时候,能且只能signal/wait一个数组名。例如:
int counter;
float *in1;
counter=;
__attribute__((target(mic))) mic_compute;
cpu_cpmpute();
while(counter>){
#pragma offload target(mic:0) signal(in1)
{
mic_compute();
}
cpu_compute();//此时函数与上面的MIC函数并发执行
#pragma offload_wait target(mic:0) wait(in)
counter--;
}
例子中定义了一个MIC计算函数mic_compute和一个CPU计算函数cpu_compute。当程序执行到offload语句时,MIC端执行mic_compute并将控制权交回CPU线程,CPU在得到控制权后,执行cpu_compute函数。cpu_compute函数执行完成后,执行offload_wait语句,offload_wait查看之前offload语句发出的signal信号是否已经到达,如果没有到达,则等待,否则继续执行下面的语句,即counter自减。
MIC语句offload中有if的用法,可以根据条件判断是否将该代码放到设备端运行。如果if中的表达式为假,则代码放到CPU端运行,否则放到MIC端运行。
#pragma offload target(mic) if(N>1000)
意为当N>1000时使用MIC进行计算,否则使用CPU端进行计算。
MIC的异步传输的更多相关文章
- MIC性能优化策略
MIC性能优化主要包括系统级和内核级:系统级优化包括节点之间,CPU与MIC之间的负载均衡优化:MIC内存空间优化:计算与IO并行优化:IO与IO并行优化:数据传递优化:网络性能优化:硬盘性能优化等. ...
- js中XMLHttpRequest对象实现GET、POST异步传输
js中XMLHttpRequest对象实现GET.POST异步传输 /* * 统一XHR接口 */ function createXHR() { // IE7+,Firefox, Opera, Chr ...
- [转]C#网络编程(异步传输字符串) - Part.3
本文转自:http://www.tracefact.net/CSharp-Programming/Network-Programming-Part3.aspx 这篇文章我们将前进一大步,使用异步的方式 ...
- Opensuse enable sound and mic card
Install application pavucontrol Run pavucontrol You will see the configuration about sound card and ...
- Line in和Mic in的区别及使用
Line in和Mic in的区别及使用 我们的电脑声卡上,一般都会有Line in和Mic in两个接口,翻译成中文就是“线性输入”和“麦克风输入”,这两个都是输入端口,但是还是有区别的: 1.Li ...
- AJAX— 异步传输
AJAX异步传输 AJAX— 异步传输 AJAX浏览器与服务器异步传输数据,通过异步请求大大减少数据信息访问量,通俗:AJAX对局部刷新而不是对整个页面刷新,AJAX使得程序更快,更友好. AJAX处 ...
- 双MIC安卓手机录音问题
最近项目中解决了噪音问题和杂音问题后,用户向我们反馈(同时我们也发现)另外一个问题.部分直播间左右耳麦音量大小不一样,也就是左右声道音量大小不一样.找了几款反馈过来的手机,分别是荣耀3X.盖世3和联想 ...
- 六、Socket之UDP异步传输文件-实现稳定的文件传输
上一篇文章五.Socket之UDP异步传输文件-实现传输中取消传送中,还遗留了一个传输文件最大的问题,就是传输过程中丢包,这样在文件传输过程中就会卡住了,这篇文章就来解决文件传输中的丢包问题,实现稳定 ...
- 二、Socket之UDP异步传输文件
上一篇文章一.Socket之UDP异步传输文件中,实现了文件的基本传输,但是传输过程中的信息是看不到的,这一篇是对上一篇进行了一些改进,并且可以了解传输的信息(加入了Log),还加入了接收或者拒绝接收 ...
随机推荐
- 【bzoj1415】【聪聪和可可】期望dp(记忆化搜索)+最短路
[pixiv] https://www.pixiv.net/member_illust.php?mode=medium&illust_id=57148470 Descrition 首先很明显是 ...
- Map泛型集合-国家中文和英文的键值映射
package collection; import java.util.HashMap; import java.util.Map; public class Test5 { public stat ...
- Ubuntu 16.04/CentOS 6.9安装Apache压力(并发)测试工具ab
说明: ab工具已经在Apache中包含,如果不想安装Apache,那么可以使用下面方法单独安装. 安装: Ubuntu: sudo apt-get install apache2-utils Cen ...
- SQL 存储过程入门(事务)
本篇我们来讲一下事务处理技术. 为什么要使用事务呢,事务有什么用呢,举个例子. 假设我们现在有个业务,当做成功某件事情的时候要向2张表中插入数据,A表,B表,我们插入的顺序是先插入A,再插入B表,如果 ...
- [置顶]
docker web-GUI DockerUI和Shipyard对比
DockerUI和Shipyard对比 相似 基于Docker API,提供等同Docker命令行的大部分功能,支持container管理,image管理. web页面查看和管理容器和镜像,均能批量管 ...
- python多线程,守护线程
https://www.cnblogs.com/liuyang1987/p/6292321.html
- DotnetBrowser高级教程-(4)使用MVC框架4-过滤器
dotnetbrowser内置了过滤器,所谓过滤器,就是实现了Action前后拦截,请看下例: 1.增加目录Filters,在该目录下增加新的过滤器PerformanceFilter,代码如下: pu ...
- [PWA] Show an Error when a POST or DELETE Fails in an Offline PWA
We're storing JSON data in the cache - but that only applies to HTTP GET requests - and not to POST ...
- UVA 111 (复习dp, 14.07.09)
History Grading Background Many problems in Computer Science involve maximizing some measure accor ...
- javascript - 封装jsonp
jsonp牵扯到同源策略.跨域等问题,这里不细说了. 实现就是创建动态的script标签来请求后台地址: 示例: jsonp('xxx.php', { uid: 1 }, function (res) ...