P. 1
CUDA C Programming Guide

CUDA C Programming Guide

|Views: 326|Likes:
Published by maurolw

More info:

Published by: maurolw on Apr 06, 2012
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

05/18/2012

pdf

text

original

The device memory heap has a fixed size that must be specified before any program
using malloc() or free() is loaded into the context. A default heap of eight
megabytes is allocated if any program uses malloc() without explicitly specifying
the heap size.
The following API functions get and set the heap size:

cudaDeviceGetLimit(size_t* size, cudaLimitMallocHeapSize)
cudaDeviceSetLimit(cudaLimitMallocHeapSize, size_t size)
The heap size granted will be at least size bytes. cuCtxGetLimit() and
cudaDeviceGetLimit() return the currently requested heap size.
The actual memory allocation for the heap occurs when a module is loaded into the
context, either explicitly via the CUDA driver API (see Section G.2), or implicitly
via the CUDA runtime API (see Section 3.2). If the memory allocation fails, the
module load will generate a CUDA_ERROR_SHARED_OBJECT_INIT_FAILED
error.
Heap size cannot be changed once a module load has occurred and it does not
resize dynamically according to need.
Memory reserved for the device heap is in addition to memory allocated through
host-side CUDA API calls such as cudaMalloc().

You're Reading a Free Preview

Download
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->