Comments (8)
It is a limitation that comes from CUDA because we use Textures.
Image loading uses linear memory, and the max size for newer cards is 65000x65000.
SIFT octave computation uses CudaArray, and the max size for newer cards is 65536x65535.
These numbers are just from the CUDA page on Wikipedia, but they fit with my experience. The exact number for each card can be found in the cudaDeviceProp structure (for example used in device_prop_t::print in popsift/common/device_prop.cu), but we're not checking it yet.
It is not very difficult to add a size check to enqueue() and reject images that are too big, I've just not thought about it.
from popsift.
I'v got
Could not destroy texture object: driver shutting down
from popsift.
@Xel233 only with huge images or with normal sized images, too?
from popsift.
Should ask @griwodz but it is very likely that there is an upper bound on the size of the images. And a hw limitation too, ie it depends on the size of the RAM of your GPU.
from popsift.
Yes, if we have a way to get this information in the popsift API, we could switch to the CPU version on the AliceVision side.
from popsift.
in AV we have the same check/print in gpu/gpu.cpp
https://github.com/alicevision/AliceVision/blob/develop/src/aliceVision/gpu/gpu.cpp#L68
from popsift.
I propose PR #89 to give a better and earlier warning. The function can also be used to find out if you can use PopSift for a particular width and height or if you should use a CPU alternative.
Please note that the check depends on the current Config of that PopSift object. Cards with different CCs may have different limits, it's important to cudaSetDevice to the desired one before testing.
from popsift.
closed by #89
from popsift.
Related Issues (20)
- minor suggestions for code improvement HOT 5
- Could not get current device ID initialization error HOT 5
- [bug] Runtime HOT 6
- How to retrieve matches [question] HOT 3
- [question]how to get the xpos and ypos on the input image? HOT 2
- [question]how can I set config to extract the same features for same images? HOT 2
- [bug] s_filtergrid.cu does not compile missing thrust/host_vector.h header HOT 2
- [bug]cannot use thread_local specifier for a __constant__ variable ConsoleApplication1 E:\Desktop\VS-Test\09\ConsoleApplication1\popsift\gauss_filter.cu 21 HOT 2
- [request] using exception for error handling HOT 2
- Memory leak when running enqueue, job->get() in while loop HOT 9
- Doesn't build with cuda 12 HOT 1
- job->get() takes a long time(~200ms with default settings on a small image HOT 1
- [request] Support CUDA SDK 12.X HOT 1
- [ci] move ci to github actions HOT 1
- [request] Bringing PopSift implementation into OpenCV
- How to use popsift as API? HOT 3
- Cannot Reproduce OpenCV Descriptors
- [bug] PopSift build failure for CUDA >= 12.0 HOT 1
- [ci] Continuous integration for both Linux and Windows must be updated
- runtime error: cudaMemcpyToSymbol failed for Gauss kernel initialization HOT 7
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from popsift.