memcpy相关内容

内存复制速度比较CPU<;->;GPU

我现在正在学习Boost::Compute OpenCL包装库。 我遇到复制过程非常慢的问题。 如果我们将CPU到CPU的复制速度调整为1,那么GPU到CPU、GPU到GPU、CPU到GPU的复制速度有多快? 我不需要精确的数字。仅仅是一个大概的想法就会有很大的帮助。例如,CPU-CPU至少比GPU-GPU快10倍。 推荐答案 没有人回答我的问题。 所以我写了一个程序来检查 ..
发布时间:2022-06-27 19:53:18 其他开发

让 GCC 编译而不插入对 memcpy 的调用

我目前正在使用为 PowerPC 440 编译的 GCC 4.5.3,并且正在编译一些不需要 libc 的代码.我没有直接调用 memcpy(),但编译器似乎在构建过程中插入了一个. 有 -nostdlib、-nostartfiles、-nodefaultlibs 等链接器选项,但我无法使用它们,因为我没有进行链接阶段.我只是在编译.像这样: $ powerpc-440-eabi-gcc ..
发布时间:2022-01-17 08:56:22 其他开发

在 mmap 之后在 memcpy 中获取分段错误 SIGSEGV

我编写了一个简单的 Android 原生函数,它获取文件名和更多参数,并通过映射 (mmap) 它的内存来读取文件. 因为是mmap,所以我不需要调用“read()",所以我只是从mmap()返回的地址中memcpy(). 但是,我在某个地方得到了 SIGSEGV,可能是因为我试图访问我不允许的内存.但是我不明白为什么,我已经要求映射所有文件的内存! 我附上了我的代码和我得到的错 ..
发布时间:2022-01-12 16:06:59 移动开发

将数据复制到“cufftComplex"数据结构?

我将数据存储为浮点数组(单精度).我有一个数组用于我的真实数据,一个数组用于我的复杂数据,我将其用作 FFT 的输入.如果我想使用 CUDA cufft 库,我需要将此数据复制到 cufftComplex 数据类型中.来自 nVidia:“cufftComplex 是一种单精度浮点复数数据类型,由交错的实部和虚部组成."cufft 操作的数据存储在 cufftComplex 的数组中. 如何 ..
发布时间:2022-01-10 15:27:17 其他开发

copy_to_user 与 memcpy

我一直被告知(在书籍和教程中)在将数据从内核空间复制到用户空间时,我们应该使用 copy_to_user() 而使用 memcpy() 会导致系统出现问题.最近我错误地使用了 memcpy() 并且它工作得很好,没有任何问题.为什么我们应该使用 copy_to_user 而不是 memcpy() 我的测试代码(内核模块)是这样的: static ssize_t test_read(stru ..
发布时间:2022-01-04 22:46:04 其他开发

使用赋值而不是 memcpy() 在 C 中复制结构

直到最近,我才看到使用 memcpy() 完成的结构字段的复制.在课堂和在线说明中,将一个结构体的内容复制到另一个结构体中通常看起来像 struct block *b0 = malloc(sizeof(struct block));结构块 *b1 = malloc(sizeof(struct block));/* 填充 *b0 中的字段 */memcpy(b1, b0, sizeof *b1); ..
发布时间:2021-12-23 17:17:36 其他开发

memcpy 与 C 中的赋值

在什么情况下,我应该期望 memcpys 在现代 INTEL/AMD 硬件上表现优于任务?我在 32 位 Intel 平台上使用 GCC 4.2.x(但我也对 64 位感兴趣). 解决方案 您永远不应该期望它们的表现优于作业.原因是,当编译器认为它会更快时(如果您使用优化标志),它无论如何都会使用 memcpy.如果不是,并且结构足够小以适合寄存器,则可以使用直接寄存器操作,这根本不需要任 ..
发布时间:2021-12-23 17:03:46 其他开发

用于图像处理的非常快的 memcpy?

我正在用 C 语言进行图像处理,需要在内存周围复制大量数据 - 源和目标永远不会重叠. 在 x86 平台上使用 GCC 执行此操作的绝对最快方法是什么(其中 SSE,SSE2 但不是 SSE3 可用)? 我希望解决方案是汇编或使用 GCC 内在函数? 我找到了以下链接,但不知道这是否是最好的方法(作者还说它有一些错误):http://coding.derkeiler.com/Ar ..
发布时间:2021-12-18 09:26:08 其他开发

CUDA:如何将 3D 阵列从主机复制到设备?

我想了解如何将 3 维数组从主机内存复制到设备内存.假设我有一个包含数据的 3d 数组.例如int host_data[256][256][256];我想以这种方式将该数据复制到 dev_data(一个设备数组)主机数据[x][y][z]=dev_data[x][y][z];我该怎么做?我应该如何访问设备中的 dev_data 数组?一个简单的例子会很有帮助. 解决方案 常用的方法是展平一 ..
发布时间:2021-11-25 01:47:23 C#

memcpy(),size 参数的值应该是多少?

我想将一个 int 数组复制到另一个 int 数组.它们使用相同的长度定义,因此它们将始终具有相同的长度. memcpy() 的 size 参数的以下两种替代方案的优缺点是什么? memcpy(dst, src, ARRAY_LENGTH*sizeof(int)); 或 memcpy(dst, src, sizeof(dst)); 第二个选项总是有效吗?不管内容? 支持最后一个 ..
发布时间:2021-11-18 03:29:22 其他开发

使用memcpy复制二维数组?

所以我想将一个二维数组的内容复制到另一个完全相同类型的数组中.下面是数组的创建方式: GridUnit** newGrid;newGrid = 新的 GridUnit*[宽度];for (int i = 0; i GridUnit 的大小为 16(4 个浮点数).所以这一切都初始化得很好,在我运行 for 循环以实际用一些数据填充值之后使用它没有问题.现在我想做的是将另一个数组的内容复制到 ..
发布时间:2021-11-18 02:41:15 C/C++开发

快速 ARM NEON memcpy

我想在 ARMv7 内核上复制图像.最简单的实现是每行调用 memcpy. for(i = 0; i 我知道以下内容 d, dp, s, sp, w 都是 32 字节对齐的,所以我的下一个(仍然很幼稚)实现是沿着 for (int i = 0; i ..
发布时间:2021-11-17 22:11:05 其他开发

ARM/neon memcpy 针对*未缓存* 内存进行了优化?

我使用的是 Xilinx Zynq 7000 基于 ARM 的 SoC.我正在为 DMA 缓冲区苦苦挣扎(需要帮助在 Xilinx/ARM SoC (Zynq 7000) 上映射预先保留的 **cacheable** DMA 缓冲区),所以我追求的一件事是更快的 memcpy. 我一直在考虑使用 Neon 指令和内联汇编为 ARM 编写更快的 memcpy.无论 glibc 有什么,它都很糟 ..
发布时间:2021-11-17 22:09:15 其他开发

list(...).insert(...) 的性能

我想到了以下有关计算机体系结构的问题.假设我用 Python 做 from bisect import bisectindex = bisect(x, a) # O(log n)(另外,它不应该是一个标准的列表函数吗?)x.insert(index, a) # O(1) + memcpy() 需要 log n,加上,如果我理解正确的话,还有 x[index:] 的内存复制操作.现在我最近读到瓶 ..
发布时间:2021-11-17 02:02:59 Python