You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The experiment was carried out in NVIDIA docker,nb = 500w, d = 512, There are three graphics cards:
1080(8G)
2080ti(11G)
1080(8G)
I encountered the following problems in the ivfpq experiment:
(1) When running a program with multiple GPUs, the difference between faiss::gpu::index_ cpu_ to_ gpu_multiple method and faiss::gpu::GpuiIndexIVFPQ?
(2) Can faiss::gpu::GpuiIndexIVFPQ method control the number of graphics cards and which one ?(I know the method of faiss:: GPU:: index_ cpu_to_gpu_ Multiple can control the number of GPUs)
(3) When I use nb = 4000000, d = 512,there is no problem. **When I modify nb = 5000000, an error is reported:
terminate called after throwing an instance of 'std::bad_alloc'
what(): std::bad_alloc
Aborted(core dumped)
In addition, the graphics card uses one 2080ti by default. Shouldn't it be 1080 in order?
index_cpu_to_gpu_multiple is just a wrapper around calling the GpuIndexIVFPQ constructor. In C++ I'd probably prefer calling the constructor yourself, though the multiple part wraps the indices in an IndexShards or IndexReplicas object, which dedicates a separate thread to each GPU. In order to effectively use multiple GPUs you'll want a separate CPU thread for each index on each GPU.
The GpuIndexIVFPQConfig object contains a field device that says which GPU a particular index will use.
yes. Note that 5000000 x 512 x sizeof(float) is 10.24 GB, which is likely exceeding the memory available/remaining on your GPU.
2080ti vs 1080, you are specifying config.device = 1. Nvidia specifies devices numbered from 0. You yourself have the 2080ti device as device Faiss not working #1 above, so don't see what the issue is here?
Summary
Platform
OS:
Faiss version:
Installed from:
Faiss compilation options:
Running on:
Interface:
Reproduction instructions
The experiment was carried out in NVIDIA docker,nb = 500w, d = 512, There are three graphics cards:
I encountered the following problems in the ivfpq experiment:
(1) When running a program with multiple GPUs, the difference between faiss::gpu::index_ cpu_ to_ gpu_multiple method and faiss::gpu::GpuiIndexIVFPQ?
(2) Can faiss::gpu::GpuiIndexIVFPQ method control the number of graphics cards and which one ?(I know the method of faiss:: GPU:: index_ cpu_to_gpu_ Multiple can control the number of GPUs)
(3) When I use nb = 4000000, d = 512,there is no problem. **When I modify nb = 5000000, an error is reported:
terminate called after throwing an instance of 'std::bad_alloc'
what(): std::bad_alloc
Aborted(core dumped)
In addition, the graphics card uses one 2080ti by default. Shouldn't it be 1080 in order?
The text was updated successfully, but these errors were encountered: