Unintuitive out of memory errors, and odd OOMs
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- Java
- Sterne
- 928
- Forks
- 227
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Beschreibung
I'm experimenting with TensorScope, and thus using large amounts of memory for tensors. However, when I try this, I get odd oom-related errors.
Example (kotlin):
repeat(1000) {
TFloat32.tensorOf(Shape.of(10000, 10000))
}
gives
2021-01-11 20:36:45.599992: W external/org_tensorflow/tensorflow/core/framework/cpu_allocator_impl.cc:81] Allocation of 400000000 exceeds 10% of free system memory.
2021-01-11 20:36:45.625897: W external/org_tensorflow/tensorflow/core/framework/cpu_allocator_impl.cc:81] Allocation of 400000000 exceeds 10% of free system memory.
2021-01-11 20:36:45.626092: W external/org_tensorflow/tensorflow/core/framework/cpu_allocator_impl.cc:81] Allocation of 400000000 exceeds 10% of free system memory.
2021-01-11 20:36:45.626180: W external/org_tensorflow/tensorflow/core/framework/cpu_allocator_impl.cc:81] Allocation of 400000000 exceeds 10% of free system memory.
2021-01-11 20:36:45.626262: W external/org_tensorflow/tensorflow/core/framework/cpu_allocator_impl.cc:81] Allocation of 400000000 exceeds 10% of free system memory.
Exception in thread "main" java.lang.NullPointerException
at org.tensorflow.internal.buffer.TensorBuffers.tensorMemory(TensorBuffers.java:180)
at org.tensorflow.internal.buffer.TensorBuffers.toFloats(TensorBuffers.java:102)
at org.tensorflow.internal.types.TFloat32Mapper.mapDense(TFloat32Mapper.java:34)
at org.tensorflow.internal.types.TFloat32Mapper.mapDense(TFloat32Mapper.java:30)
at org.tensorflow.RawTensor.asTypedTensor(RawTensor.java:215)
at org.tensorflow.Tensor.of(Tensor.java:90)
at org.tensorflow.Tensor.of(Tensor.java:63)
at org.tensorflow.types.TFloat32.tensorOf(TFloat32.java:79)
at tester.TensorScopeKt.main(TensorScope.kt:8)
at tester.TensorScopeKt.main(TensorScope.kt)
I'd think this is a fairly straight forward OOM, just without nice error messages, but the used memory in Task Manager (I'm on Windows) barely moves. I do start using heap memory, but it caps 100MB, even with -Xmx6g. Is there some limit on tensor allocations I'm not aware of?
Beitragsleitfaden
Erste Schritte
- Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
- Forke das Repository und arbeite in einem Branch.
- Öffne einen Pull Request, der die Issue-Nummer nennt.
Rechercherichtung
Beginne damit, das Kotlin-Beispiel über TFloat32.tensorOf zu reproduzieren und den gemeldeten Fehler unter org/tensorflow/internal/buffer/TensorBuffers.java:180 nachzuverfolgen. Vergleiche die Warnungen zur nativen Speicherzuweisung mit der Ausnahme auf Java-Seite und definiere „fertig“ als die Meldung von Fehlern bei der Speicherzuweisung mit einem genauen, umsetzbaren Fehler anstelle der beobachteten NullPointerException.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- java, kotlin
- Bereich
- machine-learning
- Issue-Typ
- Bug
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Muss geklärt werden
- Anfängerfreundlichkeit
- 35/100