标签: data-transfer

降低CPU到GPU数据传输延迟的技术

我一直在研究如何减少因CPU和GPU来回传输数据而导致的延迟.当我第一次开始使用CUDA时,我注意到CPU和GPU之间的数据传输确实需要几秒钟,但我并不在乎,因为这对我正在编写的小程序来说并不是一个真正的问题.实际上,对于绝大多数使用GPU,包括视频游戏的程序来说,延迟可能不是一个大问题,因为它们仍然比在CPU上运行的速度快得多.

然而,我是HPC爱好者的一员,当我看到天河一号理论峰值FLOPS与实际LINPACK测量性能之间的巨大差异时,我开始关注我的研究方向.这引起了我对我是否采取正确的职业道路的担忧.

通过使用cudaHostAlloc()函数来使用固定内存(页面锁定)内存是一种减少延迟的方法(非常有效),但还有其他任何我不知道的技术吗?要说清楚,我说的是优化代码,而不是硬件本身(那是NVIDIA和AMD的工作).

作为一个侧面问题,我知道戴尔和惠普销售的是特斯拉服务器.我很好奇GPU如何利用数据库应用程序,您需要从硬盘驱动器(HDD或SSD)中不断读取,这只是CPU可以执行的操作,

memory optimization cuda data-transfer latency

14
推荐指数
1
解决办法
1万
查看次数

使用着色器进行计算

是否可以使用着色器计算某些值,然后将它们返回以供进一步使用?

例如,我将网格向下发送到GPU,有一些关于如何修改它的参数(改变顶点的位置),并收回结果网格?我认为这是不可能的,因为我没有看到任何从着色器到CPU的通信变量.我正在使用GLSL,所以只有统一,属性和变化.我应该使用属性还是制服,渲染后它们是否仍然有效?我可以更改这些变量的值并在CPU中读回吗?有一些方法可以在GPU中映射数据但是这些方法会被更改和有效吗?

这是我正在考虑的方式,虽然可能有其他方式,这对我来说是不可知的.如果有人能解释我的话,我会很高兴,因为我刚读了一些关于GLSL的书,现在我想编写更复杂的着色器,我不想放弃目前不可能的方法.

谢谢

shader data-transfer glsl

13
推荐指数
1
解决办法
5466
查看次数

如何将Android实时传感器数据传输到计算机?

我希望将Android智能手机收集的实时传感器数据传输到我的电脑,并在我的电脑上进行信号处理.我怎么能实现这一目标?任何有用的教程链接都非常受欢迎.

无论是通过无线方式还是USB电缆都可以接受.

传输数据时,计算机如何处理它们?

我熟悉Python,因此使用Python来处理即将到来的数据.

Python是否有可能不断接受新来的数据并对其进行处理?

python android data-transfer transmission

13
推荐指数
3
解决办法
2万
查看次数

JSON语法:传输数组

一个有效的 JSON语法是什么样的东西:

{
  "username": "admin",
  "password": "123"
}
Run Code Online (Sandbox Code Playgroud)

但是,如果我想传输一组"用户"(给定示例)而不是单个"用户"呢?

根据规范,代码是否有效JSON?

[{
  "username": "admin",
  "password": "123"
}, {
  "username": "bbvb",
  "password": "sdfsdf"
}, {
  "username": "asd",
  "password": "222"
}]
Run Code Online (Sandbox Code Playgroud)

如果没有,使用JSON传输值数组的最佳方法是什么?(并且用'最好的方式',我的意思是语法上的)

serialization json data-transfer

12
推荐指数
2
解决办法
2万
查看次数

比较unicode字符时,Javascript字符串比较失败

我想在JavaScript中比较两个相同的字符串,但是相等运算符==返回false.一个字符串包含一个特殊字符(例如丹麦语å).

JavaScript代码:

var filenameFromJS = "Designhåndbog.pdf";
var filenameFromServer = "Designhåndbog.pdf";

print(filenameFromJS == filenameFromServer); // This prints false why?
Run Code Online (Sandbox Code Playgroud)

解决方案 对我来说有用的是unicode规范化,正如slevithan指出的那样.

我分叉了我原来的jsfiddle使用slevithan建议的规范化lib来制作一个版本.链接:http://jsfiddle.net/GWZ8j/1/.

javascript string unicode data-transfer unicode-normalization

12
推荐指数
2
解决办法
1万
查看次数

使用超声波传输数据

Yamaha InfoSoundShopKick应用程序使用允许使用超声波传输数据的技术.这是一个听不见的信号(> 18kHz),现代手机(iOS,Android)可以播放.

这些技术使用的方法是什么?他们使用什么样的调制?

iphone audio android data-transfer signal-processing

11
推荐指数
1
解决办法
9989
查看次数

如何在两个设备(android,iphone)之间传输"数据"?

如何在两台设备之间传输数据?我想在不同平台(android,iphone)之间传输数据(主要是图像文件).是否可以使用p2p或我应该使用客户端服务器?

任何帮助将不胜感激.

android p2p cross-platform data-transfer ios

11
推荐指数
3
解决办法
1万
查看次数

jQuery将元素传递给dataTransfer属性

尝试dataTransfer在拖放序列期间将jQuery对象传递给属性.将属性添加到jQuert.event.props数组后我可以分配它,但它在drop事件期间返回undefined .不知道我在这里缺少什么 - 看起来真的很简单.

使用Javascript:

function dragClip(clip, event){

    event.dataTransfer.el = clip;

    /* Console confirms event.dataTransfer.el is the jQuery object */
}

function dropClip(target, event){

    target.append(event.dataTransfer.el);

    /* event.dataTransfer.el no longer has the object... where'd it go?? */
}

jQuery.event.props.push('dataTransfer');

$('#titles')
    .bind('dragenter dragover', false)
    .bind('drop', function(event){

        dropClip($(this), event);
    });

$('.clip').bind('dragstart', function(event){

    dragClip($(this), event);
});
Run Code Online (Sandbox Code Playgroud)

更新:

重写以删除冗长.已经包含了其他东西,但匿名函数会做得很好:

jQuery.event.props.push('dataTransfer');

$('#titles')
    .bind('dragenter dragover', false)
    .bind('drop', function(event){

        $(this).append(event.dataTransfer.el);
    });

$('.clip').bind('dragstart', function(event){

    event.dataTransfer.el = $(this);
});
Run Code Online (Sandbox Code Playgroud)

UPDATE

根据@ barney的最终答案,我的最终工作代码.我注意到使用原始事件不允许我将对象作为数据传递,因此我应用了ID并在drop上重建了jQuery对象.通过摆脱声明的功能也收紧了一切.代码少,结果相同.

$('#titles')
    .bind('dragenter …
Run Code Online (Sandbox Code Playgroud)

jquery events drag-and-drop data-transfer object

11
推荐指数
1
解决办法
1万
查看次数

在iOS上通过BTLE发送数据时的最大数据大小

我目前正在实现一个iOS应用程序,它使用CoreBluetooth在两个设备之间传输数据.例如,要将数据从中央发送到外设,我使用以下代码:

NSData *data = [NSJSONSerialization dataWithJSONObject:dictionary options:NSJSONWritingPrettyPrinted error:nil];
NSLog(@"Writing data of length %d", [data length]);
[peripheral writeValue:data forCharacteristic:characteristic type:CBCharacteristicWriteWithResponse];
Run Code Online (Sandbox Code Playgroud)

这个工作绝对正常,但问题是我已经多次读过,因为特性一次最多可以传输20个字节.此外,当我查看Apple的BTLE示例代码时, 他们实现了一种将数据拆分为20字节块的机制.但是上面的代码打印出类似Writing data of length 124的东西- 数据在其他设备上很好地到达.

那么:为什么这个工作呢?更重要的是,我担心这会在某些时候破裂,特别是当非iOS设备发挥作用时.

data-transfer objective-c ios core-bluetooth bluetooth-lowenergy

11
推荐指数
1
解决办法
7500
查看次数

如何使用Javascript将文件添加到现有的dataTransfer对象中

假设:可以访问file://的本地HTML/Javascript网页

在可拖动HTML元素的拖动开始时,在事件处理函数中dragStart(e),如何添加File对象以使其被识别为文件并最终在dataTransfer.files列表中?

例如:

function dragStart(e){
    var file = getSomeFileObjFromSomewhere();
    e.originalEvent.dataTransfer.effectAllowed = "all";
    e.originalEvent.dataTransfer.setData("file", file);

    console.log("\nFiles:");
    i = 0;
    var files = e.originalEvent.dataTransfer.files,
    len = files.length;
    for (; i < len; i++) {
        console.log("\nIndex: " + i + "\nFilename: " + files[i].name);
        console.log("Type: " + files[i].type);
        console.log("Size: " + files[i].size + " bytes");
        console.dir(files[i]);
    }
}
Run Code Online (Sandbox Code Playgroud)

具体来说,它需要在Chrome/Chromium上运行.并且,我们可以假设该文件存在于本地驱动器上.基本上,当文件从Windows资源管理器拖动到可放置元素的HTML页面时,我想要相同的数据.

我知道这存在于Chrome中:

e.originalEvent.dataTransfer.setData("DownloadURL", fileType + ":" + name + ":" + filePath);
Run Code Online (Sandbox Code Playgroud)

下载文件.但这不是我想要的,因为我想假设这是一个现有文件,并且必须访问原始文件.

javascript drag-and-drop data-transfer file data-transfer-objects

11
推荐指数
2
解决办法
3157
查看次数