How to link NumPy to Eigen3, or OpenBLAS, GotoBLAS2, ATLAS?











up vote
3
down vote

favorite
1












I installed Anaconda3(with Python3.7), and found that the NumPy extension is linked MKL via numpy.__config__.show():



mkl_info:
libraries = ['mkl_rt']
library_dirs = ['C:/Anaconda\Library\lib']
define_macros = [('SCIPY_MKL_H', None), ('HAVE_CBLAS', None)]
include_dirs = ['C:\Program Files (x86)\IntelSWTools\compilers_and_libraries_2016.4.246\windows\mkl', 'C:\Program Files (x86)\IntelSWTools\compilers_and_libraries_2016.4.246\windows\mkl\include', 'C:\Program Files (x86)\IntelSWTools\compilers_and_libraries_2016.4.246\windows\mkl\lib', 'C:/Anaconda\Library\include']
blas_mkl_info:
libraries = ['mkl_rt']
library_dirs = ['C:/Anaconda\Library\lib']
define_macros = [('SCIPY_MKL_H', None), ('HAVE_CBLAS', None)]
include_dirs = ['C:\Program Files (x86)\IntelSWTools\compilers_and_libraries_2016.4.246\windows\mkl', 'C:\Program Files (x86)\IntelSWTools\compilers_and_libraries_2016.4.246\windows\mkl\include', 'C:\Program Files (x86)\IntelSWTools\compilers_and_libraries_2016.4.246\windows\mkl\lib', 'C:/Anaconda\Library\include']
blas_opt_info:
libraries = ['mkl_rt']
library_dirs = ['C:/Anaconda\Library\lib']
define_macros = [('SCIPY_MKL_H', None), ('HAVE_CBLAS', None)]
include_dirs = ['C:\Program Files (x86)\IntelSWTools\compilers_and_libraries_2016.4.246\windows\mkl', 'C:\Program Files (x86)\IntelSWTools\compilers_and_libraries_2016.4.246\windows\mkl\include', 'C:\Program Files (x86)\IntelSWTools\compilers_and_libraries_2016.4.246\windows\mkl\lib', 'C:/Anaconda\Library\include']
lapack_mkl_info:
libraries = ['mkl_rt']
library_dirs = ['C:/Anaconda\Library\lib']
define_macros = [('SCIPY_MKL_H', None), ('HAVE_CBLAS', None)]
include_dirs = ['C:\Program Files (x86)\IntelSWTools\compilers_and_libraries_2016.4.246\windows\mkl', 'C:\Program Files (x86)\IntelSWTools\compilers_and_libraries_2016.4.246\windows\mkl\include', 'C:\Program Files (x86)\IntelSWTools\compilers_and_libraries_2016.4.246\windows\mkl\lib', 'C:/Anaconda\Library\include']
lapack_opt_info:
libraries = ['mkl_rt']
library_dirs = ['C:/Anaconda\Library\lib']
define_macros = [('SCIPY_MKL_H', None), ('HAVE_CBLAS', None)]
include_dirs = ['C:\Program Files (x86)\IntelSWTools\compilers_and_libraries_2016.4.246\windows\mkl', 'C:\Program Files (x86)\IntelSWTools\compilers_and_libraries_2016.4.246\windows\mkl\include', 'C:\Program Files (x86)\IntelSWTools\compilers_and_libraries_2016.4.246\windows\mkl\lib', 'C:/Anaconda\Library\include']


In terms of that I use Ryzen CPU, so I want that my NumPy is linked to Eigen3, or OpenBLAS, GotoBLAS2, ATLAS? Which conda commands can help me get it?










share|improve this question
























  • What about conda install -c conda-forge openblas? Perhaps, following conda install -c conda-forge numpy?
    – Severin Pappadeux
    Nov 17 at 17:04












  • And conda-forge.org/docs/blas.html
    – Severin Pappadeux
    Nov 17 at 17:06










  • @SeverinPappadeux Thanks for your comment, I have tried this way, however it cannot change NumPy itself. NumPy is still linked to MKL.
    – Luke
    Nov 17 at 17:45















up vote
3
down vote

favorite
1












I installed Anaconda3(with Python3.7), and found that the NumPy extension is linked MKL via numpy.__config__.show():



mkl_info:
libraries = ['mkl_rt']
library_dirs = ['C:/Anaconda\Library\lib']
define_macros = [('SCIPY_MKL_H', None), ('HAVE_CBLAS', None)]
include_dirs = ['C:\Program Files (x86)\IntelSWTools\compilers_and_libraries_2016.4.246\windows\mkl', 'C:\Program Files (x86)\IntelSWTools\compilers_and_libraries_2016.4.246\windows\mkl\include', 'C:\Program Files (x86)\IntelSWTools\compilers_and_libraries_2016.4.246\windows\mkl\lib', 'C:/Anaconda\Library\include']
blas_mkl_info:
libraries = ['mkl_rt']
library_dirs = ['C:/Anaconda\Library\lib']
define_macros = [('SCIPY_MKL_H', None), ('HAVE_CBLAS', None)]
include_dirs = ['C:\Program Files (x86)\IntelSWTools\compilers_and_libraries_2016.4.246\windows\mkl', 'C:\Program Files (x86)\IntelSWTools\compilers_and_libraries_2016.4.246\windows\mkl\include', 'C:\Program Files (x86)\IntelSWTools\compilers_and_libraries_2016.4.246\windows\mkl\lib', 'C:/Anaconda\Library\include']
blas_opt_info:
libraries = ['mkl_rt']
library_dirs = ['C:/Anaconda\Library\lib']
define_macros = [('SCIPY_MKL_H', None), ('HAVE_CBLAS', None)]
include_dirs = ['C:\Program Files (x86)\IntelSWTools\compilers_and_libraries_2016.4.246\windows\mkl', 'C:\Program Files (x86)\IntelSWTools\compilers_and_libraries_2016.4.246\windows\mkl\include', 'C:\Program Files (x86)\IntelSWTools\compilers_and_libraries_2016.4.246\windows\mkl\lib', 'C:/Anaconda\Library\include']
lapack_mkl_info:
libraries = ['mkl_rt']
library_dirs = ['C:/Anaconda\Library\lib']
define_macros = [('SCIPY_MKL_H', None), ('HAVE_CBLAS', None)]
include_dirs = ['C:\Program Files (x86)\IntelSWTools\compilers_and_libraries_2016.4.246\windows\mkl', 'C:\Program Files (x86)\IntelSWTools\compilers_and_libraries_2016.4.246\windows\mkl\include', 'C:\Program Files (x86)\IntelSWTools\compilers_and_libraries_2016.4.246\windows\mkl\lib', 'C:/Anaconda\Library\include']
lapack_opt_info:
libraries = ['mkl_rt']
library_dirs = ['C:/Anaconda\Library\lib']
define_macros = [('SCIPY_MKL_H', None), ('HAVE_CBLAS', None)]
include_dirs = ['C:\Program Files (x86)\IntelSWTools\compilers_and_libraries_2016.4.246\windows\mkl', 'C:\Program Files (x86)\IntelSWTools\compilers_and_libraries_2016.4.246\windows\mkl\include', 'C:\Program Files (x86)\IntelSWTools\compilers_and_libraries_2016.4.246\windows\mkl\lib', 'C:/Anaconda\Library\include']


In terms of that I use Ryzen CPU, so I want that my NumPy is linked to Eigen3, or OpenBLAS, GotoBLAS2, ATLAS? Which conda commands can help me get it?










share|improve this question
























  • What about conda install -c conda-forge openblas? Perhaps, following conda install -c conda-forge numpy?
    – Severin Pappadeux
    Nov 17 at 17:04












  • And conda-forge.org/docs/blas.html
    – Severin Pappadeux
    Nov 17 at 17:06










  • @SeverinPappadeux Thanks for your comment, I have tried this way, however it cannot change NumPy itself. NumPy is still linked to MKL.
    – Luke
    Nov 17 at 17:45













up vote
3
down vote

favorite
1









up vote
3
down vote

favorite
1






1





I installed Anaconda3(with Python3.7), and found that the NumPy extension is linked MKL via numpy.__config__.show():



mkl_info:
libraries = ['mkl_rt']
library_dirs = ['C:/Anaconda\Library\lib']
define_macros = [('SCIPY_MKL_H', None), ('HAVE_CBLAS', None)]
include_dirs = ['C:\Program Files (x86)\IntelSWTools\compilers_and_libraries_2016.4.246\windows\mkl', 'C:\Program Files (x86)\IntelSWTools\compilers_and_libraries_2016.4.246\windows\mkl\include', 'C:\Program Files (x86)\IntelSWTools\compilers_and_libraries_2016.4.246\windows\mkl\lib', 'C:/Anaconda\Library\include']
blas_mkl_info:
libraries = ['mkl_rt']
library_dirs = ['C:/Anaconda\Library\lib']
define_macros = [('SCIPY_MKL_H', None), ('HAVE_CBLAS', None)]
include_dirs = ['C:\Program Files (x86)\IntelSWTools\compilers_and_libraries_2016.4.246\windows\mkl', 'C:\Program Files (x86)\IntelSWTools\compilers_and_libraries_2016.4.246\windows\mkl\include', 'C:\Program Files (x86)\IntelSWTools\compilers_and_libraries_2016.4.246\windows\mkl\lib', 'C:/Anaconda\Library\include']
blas_opt_info:
libraries = ['mkl_rt']
library_dirs = ['C:/Anaconda\Library\lib']
define_macros = [('SCIPY_MKL_H', None), ('HAVE_CBLAS', None)]
include_dirs = ['C:\Program Files (x86)\IntelSWTools\compilers_and_libraries_2016.4.246\windows\mkl', 'C:\Program Files (x86)\IntelSWTools\compilers_and_libraries_2016.4.246\windows\mkl\include', 'C:\Program Files (x86)\IntelSWTools\compilers_and_libraries_2016.4.246\windows\mkl\lib', 'C:/Anaconda\Library\include']
lapack_mkl_info:
libraries = ['mkl_rt']
library_dirs = ['C:/Anaconda\Library\lib']
define_macros = [('SCIPY_MKL_H', None), ('HAVE_CBLAS', None)]
include_dirs = ['C:\Program Files (x86)\IntelSWTools\compilers_and_libraries_2016.4.246\windows\mkl', 'C:\Program Files (x86)\IntelSWTools\compilers_and_libraries_2016.4.246\windows\mkl\include', 'C:\Program Files (x86)\IntelSWTools\compilers_and_libraries_2016.4.246\windows\mkl\lib', 'C:/Anaconda\Library\include']
lapack_opt_info:
libraries = ['mkl_rt']
library_dirs = ['C:/Anaconda\Library\lib']
define_macros = [('SCIPY_MKL_H', None), ('HAVE_CBLAS', None)]
include_dirs = ['C:\Program Files (x86)\IntelSWTools\compilers_and_libraries_2016.4.246\windows\mkl', 'C:\Program Files (x86)\IntelSWTools\compilers_and_libraries_2016.4.246\windows\mkl\include', 'C:\Program Files (x86)\IntelSWTools\compilers_and_libraries_2016.4.246\windows\mkl\lib', 'C:/Anaconda\Library\include']


In terms of that I use Ryzen CPU, so I want that my NumPy is linked to Eigen3, or OpenBLAS, GotoBLAS2, ATLAS? Which conda commands can help me get it?










share|improve this question















I installed Anaconda3(with Python3.7), and found that the NumPy extension is linked MKL via numpy.__config__.show():



mkl_info:
libraries = ['mkl_rt']
library_dirs = ['C:/Anaconda\Library\lib']
define_macros = [('SCIPY_MKL_H', None), ('HAVE_CBLAS', None)]
include_dirs = ['C:\Program Files (x86)\IntelSWTools\compilers_and_libraries_2016.4.246\windows\mkl', 'C:\Program Files (x86)\IntelSWTools\compilers_and_libraries_2016.4.246\windows\mkl\include', 'C:\Program Files (x86)\IntelSWTools\compilers_and_libraries_2016.4.246\windows\mkl\lib', 'C:/Anaconda\Library\include']
blas_mkl_info:
libraries = ['mkl_rt']
library_dirs = ['C:/Anaconda\Library\lib']
define_macros = [('SCIPY_MKL_H', None), ('HAVE_CBLAS', None)]
include_dirs = ['C:\Program Files (x86)\IntelSWTools\compilers_and_libraries_2016.4.246\windows\mkl', 'C:\Program Files (x86)\IntelSWTools\compilers_and_libraries_2016.4.246\windows\mkl\include', 'C:\Program Files (x86)\IntelSWTools\compilers_and_libraries_2016.4.246\windows\mkl\lib', 'C:/Anaconda\Library\include']
blas_opt_info:
libraries = ['mkl_rt']
library_dirs = ['C:/Anaconda\Library\lib']
define_macros = [('SCIPY_MKL_H', None), ('HAVE_CBLAS', None)]
include_dirs = ['C:\Program Files (x86)\IntelSWTools\compilers_and_libraries_2016.4.246\windows\mkl', 'C:\Program Files (x86)\IntelSWTools\compilers_and_libraries_2016.4.246\windows\mkl\include', 'C:\Program Files (x86)\IntelSWTools\compilers_and_libraries_2016.4.246\windows\mkl\lib', 'C:/Anaconda\Library\include']
lapack_mkl_info:
libraries = ['mkl_rt']
library_dirs = ['C:/Anaconda\Library\lib']
define_macros = [('SCIPY_MKL_H', None), ('HAVE_CBLAS', None)]
include_dirs = ['C:\Program Files (x86)\IntelSWTools\compilers_and_libraries_2016.4.246\windows\mkl', 'C:\Program Files (x86)\IntelSWTools\compilers_and_libraries_2016.4.246\windows\mkl\include', 'C:\Program Files (x86)\IntelSWTools\compilers_and_libraries_2016.4.246\windows\mkl\lib', 'C:/Anaconda\Library\include']
lapack_opt_info:
libraries = ['mkl_rt']
library_dirs = ['C:/Anaconda\Library\lib']
define_macros = [('SCIPY_MKL_H', None), ('HAVE_CBLAS', None)]
include_dirs = ['C:\Program Files (x86)\IntelSWTools\compilers_and_libraries_2016.4.246\windows\mkl', 'C:\Program Files (x86)\IntelSWTools\compilers_and_libraries_2016.4.246\windows\mkl\include', 'C:\Program Files (x86)\IntelSWTools\compilers_and_libraries_2016.4.246\windows\mkl\lib', 'C:/Anaconda\Library\include']


In terms of that I use Ryzen CPU, so I want that my NumPy is linked to Eigen3, or OpenBLAS, GotoBLAS2, ATLAS? Which conda commands can help me get it?







python numpy anaconda






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Nov 17 at 17:43

























asked Nov 17 at 14:39









Luke

162




162












  • What about conda install -c conda-forge openblas? Perhaps, following conda install -c conda-forge numpy?
    – Severin Pappadeux
    Nov 17 at 17:04












  • And conda-forge.org/docs/blas.html
    – Severin Pappadeux
    Nov 17 at 17:06










  • @SeverinPappadeux Thanks for your comment, I have tried this way, however it cannot change NumPy itself. NumPy is still linked to MKL.
    – Luke
    Nov 17 at 17:45


















  • What about conda install -c conda-forge openblas? Perhaps, following conda install -c conda-forge numpy?
    – Severin Pappadeux
    Nov 17 at 17:04












  • And conda-forge.org/docs/blas.html
    – Severin Pappadeux
    Nov 17 at 17:06










  • @SeverinPappadeux Thanks for your comment, I have tried this way, however it cannot change NumPy itself. NumPy is still linked to MKL.
    – Luke
    Nov 17 at 17:45
















What about conda install -c conda-forge openblas? Perhaps, following conda install -c conda-forge numpy?
– Severin Pappadeux
Nov 17 at 17:04






What about conda install -c conda-forge openblas? Perhaps, following conda install -c conda-forge numpy?
– Severin Pappadeux
Nov 17 at 17:04














And conda-forge.org/docs/blas.html
– Severin Pappadeux
Nov 17 at 17:06




And conda-forge.org/docs/blas.html
– Severin Pappadeux
Nov 17 at 17:06












@SeverinPappadeux Thanks for your comment, I have tried this way, however it cannot change NumPy itself. NumPy is still linked to MKL.
– Luke
Nov 17 at 17:45




@SeverinPappadeux Thanks for your comment, I have tried this way, however it cannot change NumPy itself. NumPy is still linked to MKL.
– Luke
Nov 17 at 17:45












1 Answer
1






active

oldest

votes

















up vote
0
down vote













First query a list of available numpy builds on the conda-forge channel with:



conda search -c conda-forge numpy


Look in the list for a numpy build that has openblas in its build version. Then install that version with the conda install command. For example:



conda install -c conda-forge numpy=1.15.4=py37_blas_openblash442142e_1000





share|improve this answer





















  • Thanks a lot for your answer. However, it got wrong with Solving environment: failed UnsatisfiableError: The following specifications were found to be in conflict: - keras-preprocessing -> keras[version='>=2.1.6'] -> scipy[version='>=0.14'] -> blas=[build=mkl] - numpy==1.15.4=py36_blas_openblash442142e_1000 Use "conda info <package>" to see the dependencies for each package.
    – Luke
    Nov 17 at 18:17












  • After I posted this question, I have installed TensorFlow extension, and it changed my Python version from 3.7 to 3.6 automatically....
    – Luke
    Nov 17 at 18:21











Your Answer






StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");

StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});

function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});


}
});














 

draft saved


draft discarded


















StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53352242%2fhow-to-link-numpy-to-eigen3-or-openblas-gotoblas2-atlas%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown

























1 Answer
1






active

oldest

votes








1 Answer
1






active

oldest

votes









active

oldest

votes






active

oldest

votes








up vote
0
down vote













First query a list of available numpy builds on the conda-forge channel with:



conda search -c conda-forge numpy


Look in the list for a numpy build that has openblas in its build version. Then install that version with the conda install command. For example:



conda install -c conda-forge numpy=1.15.4=py37_blas_openblash442142e_1000





share|improve this answer





















  • Thanks a lot for your answer. However, it got wrong with Solving environment: failed UnsatisfiableError: The following specifications were found to be in conflict: - keras-preprocessing -> keras[version='>=2.1.6'] -> scipy[version='>=0.14'] -> blas=[build=mkl] - numpy==1.15.4=py36_blas_openblash442142e_1000 Use "conda info <package>" to see the dependencies for each package.
    – Luke
    Nov 17 at 18:17












  • After I posted this question, I have installed TensorFlow extension, and it changed my Python version from 3.7 to 3.6 automatically....
    – Luke
    Nov 17 at 18:21















up vote
0
down vote













First query a list of available numpy builds on the conda-forge channel with:



conda search -c conda-forge numpy


Look in the list for a numpy build that has openblas in its build version. Then install that version with the conda install command. For example:



conda install -c conda-forge numpy=1.15.4=py37_blas_openblash442142e_1000





share|improve this answer





















  • Thanks a lot for your answer. However, it got wrong with Solving environment: failed UnsatisfiableError: The following specifications were found to be in conflict: - keras-preprocessing -> keras[version='>=2.1.6'] -> scipy[version='>=0.14'] -> blas=[build=mkl] - numpy==1.15.4=py36_blas_openblash442142e_1000 Use "conda info <package>" to see the dependencies for each package.
    – Luke
    Nov 17 at 18:17












  • After I posted this question, I have installed TensorFlow extension, and it changed my Python version from 3.7 to 3.6 automatically....
    – Luke
    Nov 17 at 18:21













up vote
0
down vote










up vote
0
down vote









First query a list of available numpy builds on the conda-forge channel with:



conda search -c conda-forge numpy


Look in the list for a numpy build that has openblas in its build version. Then install that version with the conda install command. For example:



conda install -c conda-forge numpy=1.15.4=py37_blas_openblash442142e_1000





share|improve this answer












First query a list of available numpy builds on the conda-forge channel with:



conda search -c conda-forge numpy


Look in the list for a numpy build that has openblas in its build version. Then install that version with the conda install command. For example:



conda install -c conda-forge numpy=1.15.4=py37_blas_openblash442142e_1000






share|improve this answer












share|improve this answer



share|improve this answer










answered Nov 17 at 18:07









Xukrao

1,6161522




1,6161522












  • Thanks a lot for your answer. However, it got wrong with Solving environment: failed UnsatisfiableError: The following specifications were found to be in conflict: - keras-preprocessing -> keras[version='>=2.1.6'] -> scipy[version='>=0.14'] -> blas=[build=mkl] - numpy==1.15.4=py36_blas_openblash442142e_1000 Use "conda info <package>" to see the dependencies for each package.
    – Luke
    Nov 17 at 18:17












  • After I posted this question, I have installed TensorFlow extension, and it changed my Python version from 3.7 to 3.6 automatically....
    – Luke
    Nov 17 at 18:21


















  • Thanks a lot for your answer. However, it got wrong with Solving environment: failed UnsatisfiableError: The following specifications were found to be in conflict: - keras-preprocessing -> keras[version='>=2.1.6'] -> scipy[version='>=0.14'] -> blas=[build=mkl] - numpy==1.15.4=py36_blas_openblash442142e_1000 Use "conda info <package>" to see the dependencies for each package.
    – Luke
    Nov 17 at 18:17












  • After I posted this question, I have installed TensorFlow extension, and it changed my Python version from 3.7 to 3.6 automatically....
    – Luke
    Nov 17 at 18:21
















Thanks a lot for your answer. However, it got wrong with Solving environment: failed UnsatisfiableError: The following specifications were found to be in conflict: - keras-preprocessing -> keras[version='>=2.1.6'] -> scipy[version='>=0.14'] -> blas=[build=mkl] - numpy==1.15.4=py36_blas_openblash442142e_1000 Use "conda info <package>" to see the dependencies for each package.
– Luke
Nov 17 at 18:17






Thanks a lot for your answer. However, it got wrong with Solving environment: failed UnsatisfiableError: The following specifications were found to be in conflict: - keras-preprocessing -> keras[version='>=2.1.6'] -> scipy[version='>=0.14'] -> blas=[build=mkl] - numpy==1.15.4=py36_blas_openblash442142e_1000 Use "conda info <package>" to see the dependencies for each package.
– Luke
Nov 17 at 18:17














After I posted this question, I have installed TensorFlow extension, and it changed my Python version from 3.7 to 3.6 automatically....
– Luke
Nov 17 at 18:21




After I posted this question, I have installed TensorFlow extension, and it changed my Python version from 3.7 to 3.6 automatically....
– Luke
Nov 17 at 18:21


















 

draft saved


draft discarded



















































 


draft saved


draft discarded














StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53352242%2fhow-to-link-numpy-to-eigen3-or-openblas-gotoblas2-atlas%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







Popular posts from this blog

"Incorrect syntax near the keyword 'ON'. (on update cascade, on delete cascade,)

Alcedinidae

Origin of the phrase “under your belt”?