1. A method of allocating memory for processing threads in a multithreaded processor to execute a shader program, comprising: receiving a thread launch request for a first thread; determining that the first thread requires a memory allocation to execute the shader program in the multithreaded processor; obtaining an available memory offset specifying an allocation unit within a memory pool allocated for processing the threads, wherein a size of the allocation unit is based on a largest amount of memory needed by any thread to execute the shader program in the multithreaded processor; and writing the available memory offset in an entry of a thread table to allocate the allocation unit within the memory pool to the first thread.