Wissen, ob Octave vollen Zugriff auf den 64-Bit-Speicherbereich hat

8

Wie kann ich wissen, ob Octave vollen Zugriff auf den 64-Bit-Speicherbereich hat?

Kann ich eine Matrix erstellen, die mehr als 4 GB Arbeitsspeicher belegt?

    
Ben 19.02.2009, 15:22
quelle

5 Antworten

4

Mir ist klar, dass die Frage alt ist, aber immer noch ziemlich relevant. Auf einem Mac habe ich homebrew verwendet und ein Beispiel für eine Matrix über 4GB darunter eingefügt. Derzeit funktioniert dieses Verfahren:

Installieren Sie Homebrew und führen Sie anschließend in einem Terminalfenster Folgendes aus:

%Vor%

Fügen Sie das dann zu ~ / .octaverc:

hinzu %Vor%

Genießen Sie Ihre 64-Bit-Oktavkompilierung!

%Vor%     
thirdhaf 06.12.2011 09:11
quelle
1

Ich weiß nicht, ob das Ihnen hilft, aber entsprechend: Ссылка , Unterstützung über 2 GB Speicher für Array ist experimentell.

    
Czubek 25.06.2009 17:21
quelle
1

Ich habe eine 64-Bit-Version von Octave (octave-devel) mit MacPorts installiert. Installationsanweisungen sind verfügbar unter Ссылка .

Es scheint jedoch, dass das octave-devel-Paket immer noch die 32-Bit-Standard-Indizierung von Octave verwendet, so dass ich keine Arrays von 'int8' mit mehr als 2 GB laden kann. (ref: Ссылка ).

Dies kann daran liegen, dass das octave-devel-Paket keine 64-Bit-Versionen der linearen Algebra-Pakete kompiliert, von denen Octave abhängt.

%Vor%

Die 64bit everywhere-Antwort zeigt keinen gültigen Test, da die 32-Bit-Indizierung der Octave die Erstellung von "doppelten" Arrays mit bis zu 16 GB ermöglicht.

    
somealias 05.04.2012 01:59
quelle
0

Es gibt zwei Dinge, die relevant sind:

  • 64-Bit-Zeiger, die größere Speicherstrukturen als 2 oder 4 GB ermöglichen

  • 64-Bit-Ganzzahlen zum Indexieren von Arrays mit mehr als 2 ^ 32 Elementen

Zum ersten sollte Kompilierung auf einem 64-Bit-System tun. Für die Sekunde brauchen Sie --enable64 beim Kompilieren der Oktave, aber was noch wichtiger ist, müssen Sie mit 64bit Ganzzahlindizierung BLAS Bibliotheken verbinden. Das ist der schwierige Teil.

Im Jahr 2008 gelang es mir, eine Version der Oktave auf diese Weise zu kompilieren, mit Hilfe von AMD blas-Bibliotheken (die 64-Bit-Integer-Fortran-Version). Seitdem konnte ich dies jedoch nicht reproduzieren, da die Bibliothek aktualisiert wurde und nicht mit dem von uns verwendeten Linux-System kompatibel war (Ubunto 12.04). Das Kompilieren von Octave und das Verbinden mit einem Drittanbieter-BLAS war einfach zu schwierig.

Ich arbeite an 128-GB-Speichercomputern, aber meine Oktavskripte können immer noch nur kleine Probleme angehen. 2GB sollte für jeden ausreichen ...

    
davidav 25.09.2013 20:33
quelle
0

Das Matlab / Octave-Paket Psychtoolbox hat eine 64-Bit-MacOS-Version mit 64-Bit-.mex-Dateien. Soweit ich weiß, wird jede Verwendung der .mex-Dateien in der 32-Bit-Oktave mit Nachrichten wie:

fehlschlagen %Vor%

Gibt es eine Version von Octave, die 64-Bit-.mex-Dateien verwenden kann?

  • PsychHID.mex Architektur ist: x86_64
  • Octave 3.4.0 Architekturen sind: i386 ppc
  • Mein System ist: MacBook Pro 5,1 mit MacOS 10.6.8

Es ist möglich, dass dies ein Psychtoolbox-Problem ist, da ich 3 Architekturen für Linux-Dateien ( Octave3LinuxFiles , Octave3LinuxFiles64 , Octave3LinuxFilesARM ) in /Applications/Psychtoolbox/PsychBasic sehe, aber nur eine für MacOS ( Octave3OSXFiles64 ).

    
Howard A. Landman 09.03.2014 06:03
quelle

Tags und Links