繁体   English   中英

仅Malloc低32位地址

[英]Only Malloc Lower 32bit address

我在64位计算机上有关于malloc的问题。 我想知道malloc是否有可能仅从较低的32位addr分配内存。 例如,仅分配32位计算机中的0xcfffffff到0xffffffff的内存。

谢谢您的帮助。


更新:目前,我正在尝试为使用OpenCL的GPU设备实现内存管理工具。 为此,我需要拦截来自OpenCL的内存创建API,并自行重新实现它们。 换句话说,我在主机端为GPU设备实现了虚拟内存。 问题是,在NVIDIA cuda中,即使在64位计算机中,OpenCL也只有32位内存ptrs。 因此,每次我在主机端分配内存并尝试将其视为OpenCL内存时,高32位都会被截断。 因此,如果我只能分配较低的32位,则不会有问题。

您将必须创建自己的内存分配器。 起点将是使用操作系统服务(取决于系统)在较低的32位范围内分配页面。 然后使用您的函数从这些页面分配内存。

没有。

malloc()不受您控制,无法从所需位置分配内存。 它是通过malloc()在内部使用作为参数传递的大小来完成的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM