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%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.
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 ...
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?
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
).