Heap Allocation

14,000,000 Leading Edge Experts on the ideXlab platform

Scan Science and Technology

Contact Leading Edge Experts & Companies

Scan Science and Technology

Contact Leading Edge Experts & Companies

The Experts below are selected from a list of 66 Experts worldwide ranked by ideXlab platform

Eliot Moss - One of the best experts on this subject based on the ideXlab platform.

  • Memory system performance of programs with intensive Heap Allocation
    ACM Transactions on Computer Systems, 1995
    Co-Authors: Amer Diwan, David Tarditi, Eliot Moss
    Abstract:

    Heap Allocation with copying garbage collection is a general storage management technique for programming languages. It is believed to have poor memory system performance. To investigate this, we conducted an in-depth study of the memory system performance of Heap Allocation for memory systems found on many machines. We studied the performance of mostly functional Standard ML programs which made heavy use of Heap Allocation. We found that most machines support Heap Allocation poorly. However, with the appropriate memory system organization, Heap Allocation can have good performance. The memory system property crucial for achieving good performance was the ability to allocate and initialize a new object into the cache without a penalty. This can be achieved by having subblock by placement with a subblock size of one word with a write-allocate policy, along with fast page-mode writes or a write buffer. For caches with subblock placement, the data cache overhead was under 9% for a 64K or larger data cache; without subblock placement the overhead was often higher than 50%.

  • memory subsystem performance of programs using copying garbage collection
    Symposium on Principles of Programming Languages, 1994
    Co-Authors: Amer Diwan, David Tarditi, Eliot Moss
    Abstract:

    Heap Allocation with copying garbage collection is believed to have poor memory subsystem performance. We conducted a study of the memory subsystem performance of Heap Allocation for memory subsystems found on many machines. We found that many machines support Heap Allocation poorly. However, with the appropriate memory subsystem organization, Heap Allocation can have good memory subsystem performance.

Amer Diwan - One of the best experts on this subject based on the ideXlab platform.

  • Memory system performance of programs with intensive Heap Allocation
    ACM Transactions on Computer Systems, 1995
    Co-Authors: Amer Diwan, David Tarditi, Eliot Moss
    Abstract:

    Heap Allocation with copying garbage collection is a general storage management technique for programming languages. It is believed to have poor memory system performance. To investigate this, we conducted an in-depth study of the memory system performance of Heap Allocation for memory systems found on many machines. We studied the performance of mostly functional Standard ML programs which made heavy use of Heap Allocation. We found that most machines support Heap Allocation poorly. However, with the appropriate memory system organization, Heap Allocation can have good performance. The memory system property crucial for achieving good performance was the ability to allocate and initialize a new object into the cache without a penalty. This can be achieved by having subblock by placement with a subblock size of one word with a write-allocate policy, along with fast page-mode writes or a write buffer. For caches with subblock placement, the data cache overhead was under 9% for a 64K or larger data cache; without subblock placement the overhead was often higher than 50%.

  • memory subsystem performance of programs using copying garbage collection
    Symposium on Principles of Programming Languages, 1994
    Co-Authors: Amer Diwan, David Tarditi, Eliot Moss
    Abstract:

    Heap Allocation with copying garbage collection is believed to have poor memory subsystem performance. We conducted a study of the memory subsystem performance of Heap Allocation for memory subsystems found on many machines. We found that many machines support Heap Allocation poorly. However, with the appropriate memory subsystem organization, Heap Allocation can have good memory subsystem performance.

Kalousis Alexandros - One of the best experts on this subject based on the ideXlab platform.

  • Kanerva++: extending The Kanerva Machine with differentiable, locally block allocated latent memory
    2021
    Co-Authors: Ramapuram Jason, Wu Yan, Kalousis Alexandros
    Abstract:

    Episodic and semantic memory are critical components of the human memory model. The theory of complementary learning systems (McClelland et al., 1995) suggests that the compressed representation produced by a serial event (episodic memory) is later restructured to build a more generalized form of reusable knowledge (semantic memory). In this work we develop a new principled Bayesian memory Allocation scheme that bridges the gap between episodic and semantic memory via a hierarchical latent variable model. We take inspiration from traditional Heap Allocation and extend the idea of locally contiguous memory to the Kanerva Machine, enabling a novel differentiable block allocated latent memory. In contrast to the Kanerva Machine, we simplify the process of memory writing by treating it as a fully feed forward deterministic process, relying on the stochasticity of the read key distribution to disperse information within the memory. We demonstrate that this Allocation scheme improves performance in conditional image generation, resulting in new state-of-the-art likelihood values on binarized MNIST (

  • Kanerva++: extending The Kanerva Machine with differentiable, locally block allocated latent memory
    2021
    Co-Authors: Ramapuram Jason, Wu Yan, Kalousis Alexandros
    Abstract:

    Episodic and semantic memory are critical components of the human memory model. The theory of complementary learning systems (McClelland et al., 1995) suggests that the compressed representation produced by a serial event (episodic memory) is later restructured to build a more generalized form of reusable knowledge (semantic memory). In this work we develop a new principled Bayesian memory Allocation scheme that bridges the gap between episodic and semantic memory via a hierarchical latent variable model. We take inspiration from traditional Heap Allocation and extend the idea of locally contiguous memory to the Kanerva Machine, enabling a novel differentiable block allocated latent memory. In contrast to the Kanerva Machine, we simplify the process of memory writing by treating it as a fully feed forward deterministic process, relying on the stochasticity of the read key distribution to disperse information within the memory. We demonstrate that this Allocation scheme improves performance in memory conditional image generation, resulting in new state-of-the-art conditional likelihood values on binarized MNIST (

David Tarditi - One of the best experts on this subject based on the ideXlab platform.

  • Memory system performance of programs with intensive Heap Allocation
    ACM Transactions on Computer Systems, 1995
    Co-Authors: Amer Diwan, David Tarditi, Eliot Moss
    Abstract:

    Heap Allocation with copying garbage collection is a general storage management technique for programming languages. It is believed to have poor memory system performance. To investigate this, we conducted an in-depth study of the memory system performance of Heap Allocation for memory systems found on many machines. We studied the performance of mostly functional Standard ML programs which made heavy use of Heap Allocation. We found that most machines support Heap Allocation poorly. However, with the appropriate memory system organization, Heap Allocation can have good performance. The memory system property crucial for achieving good performance was the ability to allocate and initialize a new object into the cache without a penalty. This can be achieved by having subblock by placement with a subblock size of one word with a write-allocate policy, along with fast page-mode writes or a write buffer. For caches with subblock placement, the data cache overhead was under 9% for a 64K or larger data cache; without subblock placement the overhead was often higher than 50%.

  • memory subsystem performance of programs using copying garbage collection
    Symposium on Principles of Programming Languages, 1994
    Co-Authors: Amer Diwan, David Tarditi, Eliot Moss
    Abstract:

    Heap Allocation with copying garbage collection is believed to have poor memory subsystem performance. We conducted a study of the memory subsystem performance of Heap Allocation for memory subsystems found on many machines. We found that many machines support Heap Allocation poorly. However, with the appropriate memory subsystem organization, Heap Allocation can have good memory subsystem performance.

John Hannan - One of the best experts on this subject based on the ideXlab platform.

  • a type based analysis for stack Allocation in functional languages
    Static Analysis Symposium, 1995
    Co-Authors: John Hannan
    Abstract:

    We consider the problem of detecting when bindings for variables in a higher-order, call-by-value functional language can be allocated on a stack. We use an annotated type system to infer information about the occurrence and extent of variables in a simple higher-order functional language and combine this system with a translation to an annotated language which explicitly indicates when stack Allocation can be performed. This technique supports both stack and Heap Allocation of variable bindings. Only the stack allocated bindings need follow the protocol for stacks: their extent must coincide with their scope. Heap allocated bindings can have any extent and their Allocation has no impact on the stack allocated ones. The type system uses a simple notion of annotated types in which types encode not only the typical simple type information, but also information about the use of variables. We demonstrate the use of our analysis by defining both an operational semantics and an abstract machine which utilize both a stack and an environment for variable Allocation.