小编Pid*_*AWK的帖子

cuda - 零拷贝内存,内存映射文件

我正在尝试创建一个包含uint32_ts的映射内存文件,然后将其用作 CUDA 的零拷贝固定内存,如下所示。我在获取cudaErrorInvalidValue设备指针时得到了,分配了空间并从文件映射了内存。我知道错误消息(来自 API)意味着:

这表明传递给 API 调用的一个或多个参数不在可接受的值范围内。

但我正在努力弄清楚为什么我会遇到这个问题......有什么想法吗?提前致谢。

#include <stdio.h>
#include <stdlib.h>
#include <sys/mman.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>

    …

int main(void) 
{
  struct stat buf;

    …

  uint32_t *data, *dev_data;

  cudaDeviceProp cuda_prop;
  cudaGetDeviceProperties(&cuda_prop, 0);
  if (!cuda_prop.canMapHostMemory) 
    exit(EXIT_FAILURE);

  cudaSetDeviceFlags(cudaDeviceMapHost);


  int data_file = open(data_file_name, O_RDONLY);
  int stat = fstat(sa_file, &buf);
  int data_file_size = buf.st_size;

  err = cudaHostAlloc((void**)&data, data_file_size, cudaHostAllocMapped);
  if (err == cudaErrorMemoryAllocation) exit(EXIT_FAILURE);

  data = (uint32_t*) mmap(0, data_file_size, PROT_READ, MAP_PRIVATE, data_file, 0);

  err = cudaHostGetDevicePointer((void**)&dev_data, (void*)data, …
Run Code Online (Sandbox Code Playgroud)

c memory memory-management cuda mmap

5
推荐指数
1
解决办法
2455
查看次数

Apex - 离开页面时清除表单(也在重定向时)

目前,如果我填充表单并离开页面,当我返回表单时,表单条目仍然存在。是否可以防止保存这些条目?

项目的默认值使用 PS/SQL 填充,但内容可以调整。

我尝试创建一个动态操作来清除“页面卸载”上的项目,但这没有任何作用。这是正确的浏览器事件,还是我只是把实现弄错了?


更新:提供一些上下文...

页数:

  1. 形式
  2. DML 表单(插入)-我希望不存储任何修改

可以通过第 1 页或第 2 页访问第 3 页。

如果用户通过页面 2(一个不同的表单)访问表单,他们将选择一个特定的值,这将用于填充页面 3 上的默认值(通过项目和 PL/SQL 函数体)。

如果用户通过第 1 页访问表单,将运行相同的 PL/SQL - 这可能导致第 3 页表单项为空(NULL 默认值)。

但是,当用户编辑 Page 3 项目(从默认值更改)时,这些值将在用户下次访问表单时保持不变。如何防止这种状态被捕获?

javascript plsql oracle-apex

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

I/O绑定性能 - 加速?

我正在写,涉及到最小0.5GB(和最高达20GB)的分析CSV文件的程序,我从CSV读取与如下fstream,while (getline(fin,line)) {}和做17millisecs平均每个逗号分隔的记录工作.简单的东西.

但是,有很多记录.显然,该程序受I/O限制,但我想知道是否可以提高I/O性能.我无法使用OpenMP,因为我会处理CPU约束,而缓冲这个大的文件也不会工作.所以我可能需要某种管道......

我在C++中的多线程方面经验很少,从未使用过数据流框架.有人能指出我正确的方向吗?


更新(2014年12月23日):

谢谢你们的评论.你是对的,17ms有点多......在做了大量的分析(哦,痛苦)之后,我把瓶颈分离为每个记录中一个子串的迭代(75个字符).我试验过,#pragmas但它并不足以并行化.函数调用的开销是主要的抱怨 - 现在每条记录5.41μs,已经移动了一个大块.它很难看,但速度更快.

感谢@ChrisWard1000的建议.不幸的是,我对目前使用的硬件没有多少控制权,但是会使用更大的数据集(> 20GB CSV)进行分析,看看我如何引入mmap /多线程解析等.

c++ io performance multithreading pipeline

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