How to manage the allocation in GPU memory via the pool allocator?

I am studying the usage of NVIDIA library cnmem I call the cnmemInit() to request a memory pool and start allocating the data block. In the default strategy, cnmemMalloc() allocate the “used” block from the lower address in the requested pool. For fine-grained management, I want to allocate some data block from the highest available address. How can I do that?

This is the output from cnmemPrintMemoryState():

[root] device=0, stream=0x0000000000000000, used=2048B, free=2147317760B
| list=“used”, size=2048
| | node=0x0000000001edff10, data=0x0000000503e40800, size=512, next=0x0000000001ee0c80, head= 0
| | node=0x0000000001ee0c80, data=0x0000000503e40600, size=512, next=0x0000000001ee0c50, head= 0
| | node=0x0000000001ee0c50, data=0x0000000503e40400, size=512, next=0x0000000001e6c7b0, head= 0
| | node=0x0000000001e6c7b0, data=0x0000000503e40200, size=512, next=0x0000000000000000, head= 0
| list=“free”, size=2147317760
| | node=0x0000000001e6c780, data=0x0000000503e40000, size=512, next=0x0000000001edff40, head= 1
| | node=0x0000000001edff40, data=0x0000000503e40a00, size=2147317248, next=0x0000000000000000, head= 0

anyone can help me?