Fix cuda11
* use cudnn_version.h to detect version when it is available
* remove nppi from CUDA11
* use ocv_list_filterout
* dnn(cuda): temporary disable CUDNN 8.0
* Clean: make the use of the indices array length consistent
Either we don't want this method to be used in the future for any other node
than the root node, and so we replace indices_length by size_ and remove it as
argument, or we want to be able to use it potentially for other nodes, and
so using size_ instead of indices_length would have lead to a bug.
* Fix: b was not an address
* Fix: transpose the Flann repo commit "Fixes in accum_dist methods" from Adil Ibragimov
Avoids trying to compute log(ratio) with ratio = 0
* Fix: transpose the Flann repo commit "result_set bugfix" from Jack Rae
* Fix Jack Rae commit as the initial i - 1 index was decremented before entering the loop body
* Clean: transpose the Flann repo commit "Updated comments in lsh_index" from Richard McPherson
* Fix: Transpose the Flann repo commit "Fixing unreachable code in lsh_table.h" from hypevr
* Fix warning the same way it was done in flann standalone repo
* Change the return value in case of unsupported type
G-API Serialization routines
* Serialization backend in tests, initial version
* S11N/00: A Great Rename
- "Serialization" is too long and too error-prone to type,
so now it is renamed to "s11n" everywhere;
- Same applies to "SRLZ";
- Tests also renamed to start with 'S11N.*' (easier to run);
- Also updated copyright years in new files to 2020.
* S11N/01: Some basic interface segregation
- Moved some details (low-level functions) out of serialization.hpp;
- Introduced I::IStream and I::OStream interfaces;
- Implemented those via the existing [De]SerializationStream classes;
- Moved all operators to use interfaces instead of classes;
- Moved the htonl/ntohl handling out of operators (to the classes).
The implementation didn't change much, it is a subject to the further
refactoring
* S11N/02: Basic operator reorg, basic tests, vector support
- Reorganized operators on atomic types to follow >>/<< model
(put them closer in the code for the respective types);
- Introduce more operators for basic (scalar) types;
- Drop all vector s11n overloads -- replace with a generic
(template-based) one;
- Introduced a new test suite where low-level s11n functionality
is tested (for the basic types).
* S11N/03: Operators reorganization
- Sorted the Opaque types enum by complexity;
- Reorganized the existing operators for basic types, also ordered by
complexity;
- Organized operators in three groups (Basics, OpenCV, G-API);
- Added a generic serialization for variant<>;
- Reimplemented some of the existing operators (for OpenCV and G-API
data structures);
- Introduced new operators for cv::gimpl data types. These operators
(and so, the data structures) are not yet used in the graph
dump/reconstruction routine, it will be done as a next step.
* S11N/04: The Great Clean-up
- Drop the duplicates of GModel data structures from the
serialization, serialize the GModel data structures themselve
instead (hand-written code replaced with operators).
- Also removed usuned code for printing, etc.
* S11N/05: Internal API Clean-up
- Minimize the serialization API to just Streams and Operators;
- Refactor and fix the graph serialization (deconstruction and
reconstruction) routines, fix data addressing problems there;
- Move the serialization.[ch]pp files to the core G-API library
* S11N/06: Top-level API introduction
- !!!This is likely the most invasive commit in the series!!!
- Introduced a top-level API to serialize and deserialize a GComputation
- Extended the compiler to support both forms of a GComputation:
an expession based and a deserialized one. This has led to changes in
the cv::GComputation::Priv and in its dependent components (even the
transformation tests);
- Had to extend the kernel API (GKernel) with extra information on
operations (mainly `outMeta`) which was only available for expression
based graphs. Now the `outMeta` can be taken from kernels too (and for
the deserialized graphs it is the only way);
- Revisited the internal serialization API, had to expose previously
hidden entities (like `GSerialized`);
- Extended the serialized graph info with new details (object counter,
protocol). Added unordered_map generic serialization for that;
- Reworked the very first pipeline test to be "proper"; GREEN now, the rest
is to be reworked in the next iteration.
* S11N/07: Tests reworked
- Moved the sample pipeline tests w/serialization to
test the public API (`cv::gapi::serialize`, then
followed by `cv::gapi::deserialize<>`). All GREEN.
- As a consequence, dropped the "Serialization" test
backend as no longer necessary.
* S11N/08: Final touches
- Exposed the C++ native data types at Streams level;
- Switched the ByteMemoryIn/OutStreams to store data in `char`
internally (2x less memory for sample pipelines);
- Fixed and refactored Mat dumping to the stream;
- Renamed S11N pipeline tests to their new meaning.
* linux build fix
* fix RcDesc and int uint warnings
* more Linux build fix
* white space and virtual android error fix (attempt)
* more warnings to be fixed
* android warnings fix attempt
* one more attempt for android build fix
* android warnings one more fix
* return back override
* avoid size_t
* static deserialize
* and how do you like this, elon? anonymous namespace to fix android warning.
* static inline
* trying to fix standalone build
* mat dims fix
* fix mat r/w for standalone
Co-authored-by: Dmitry Matveev <dmitry.matveev@intel.com>
Instead of using the current dimension for which we just got a big span,
we were computing Min and Max for the previous dimension stored in cutfeat
(and using 0 instead of the dimension indice for the very first dimension
with "span > (1-eps)max_span")