Comments (3)
@bjjones, this one would be a good follow-up work item.
from gpgmm.
This was something I experimented with at the time - but the Intel driver I used did not seem to have the functionality. The scheme was pretty simple - instead of MakeResident(), I set priority high. Instead of Evict(), I set priority low.
Something like this would be pretty simple to integrate:
- Locked heaps are priority MAX
- heaps scheduled for use are priority HIGH
- heaps in the LRU (i.e. fit in memory) would remain HIGH even if they aren't scheduled for use.
- heaps that don't fit into memory and are not scheduled for use are priority LOW
Part of me thinks that heaps that do fit into memory, but are not scheduled for use could be priority NORMAL, however this will require cycles on the CPU to iterate the LRU and I don't know that it would have a worthwhile effect.
from gpgmm.
That idea seems pretty reasonable to me.
I envision two modes: 1) to mimic MakeResident/Evict but using priorities and/or 2) means for the developer to override these priorities.
The first mode just sets these default priorities as you suggest (ex. heaps in ResidencySet
are HIGH, locked heaps are MAX). The second mode skips that so the developer can provide them instead.
from gpgmm.
Related Issues (20)
- Enable precise memory debugging
- Avoid attemping to sub-allocate large resources. HOT 1
- Design and implement a means to grow heaps of increasing size. HOT 1
- GPGMM question HOT 1
- Update budget using OS events or non-polling based. HOT 1
- Support pooled dynamic memory allocation for CPU allocations. HOT 19
- [Meta] Support for building through CMakelist
- Eviction on budget change events.
- Simplify residency management API HOT 1
- Support for CreateResourceAsync
- NoLeak tests appear to be flaky
- Support for a minimum viable implementation
- Remove Usage of CreateHeapFn in MVI HOT 4
- Remove MemoryAllocation::GetMappedPointer
- Add support for MCDM/DXCore devices. HOT 4
- Sync cmake DEPS versions
- EventTraceWriterTests.[Single|Multi]ThreadWrites fails on 32-bit
- Resource allocator stored on the device cannot be released due to circular reference.
- Add callback API to register backgrounds threads
- Fixes for Coverity scans
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from gpgmm.