From 4b6bd861f960a921317ce837f275f4c8ac3c45f7 Mon Sep 17 00:00:00 2001 From: Patrick Stotko Date: Tue, 19 May 2020 17:30:01 +0200 Subject: [PATCH 1/6] doc: Refine doxygen style --- doc/style.css | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/doc/style.css b/doc/style.css index 4b196d42d..3ca0665a4 100644 --- a/doc/style.css +++ b/doc/style.css @@ -2,7 +2,7 @@ body { background-color: #EBEBF0; color: black; - margin: 0; + margin: 0px; } @@ -10,14 +10,15 @@ div.contents { text-align: justify; margin-top: 0px; - margin-bottom: 10px; + margin-bottom: 0px; padding-left: 20px; padding-right: 20px; padding-top: 5px; padding-bottom: 5px; margin-left: auto; margin-right: auto; - width: 1280px; + min-height: calc(100vh - 173px); + max-width: 1280px; background-color: white; } @@ -27,7 +28,7 @@ div.header background-image: none; margin-left: auto; margin-right: auto; - width: 1280px; + max-width: 1280px; padding-left: 20px; padding-right: 20px; } From 13636f8f595e7d114bab17ee335722feaa07a957 Mon Sep 17 00:00:00 2001 From: Patrick Stotko Date: Tue, 19 May 2020 17:30:55 +0200 Subject: [PATCH 2/6] doc: Make enumeration documentation look cleaner --- doc/Doxyfile.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/Doxyfile.in b/doc/Doxyfile.in index 0b7e315dd..31532f018 100644 --- a/doc/Doxyfile.in +++ b/doc/Doxyfile.in @@ -1446,7 +1446,7 @@ GENERATE_TREEVIEW = YES # Minimum value: 0, maximum value: 20, default value: 4. # This tag requires that the tag GENERATE_HTML is set to YES. -ENUM_VALUES_PER_LINE = 4 +ENUM_VALUES_PER_LINE = 0 # If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be used # to set the initial width (in pixels) of the frame in which the tree is shown. From 8f1d23a1f4db6108bc124e12fb5fdf85aa37a6ce Mon Sep 17 00:00:00 2001 From: Patrick Stotko Date: Tue, 19 May 2020 17:32:19 +0200 Subject: [PATCH 3/6] doc: Disable unintuitive doxygen pages --- doc/DoxygenLayout.xml | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/doc/DoxygenLayout.xml b/doc/DoxygenLayout.xml index 21764c81d..4710371ca 100644 --- a/doc/DoxygenLayout.xml +++ b/doc/DoxygenLayout.xml @@ -5,21 +5,27 @@ - - - + + + + + + + + @@ -138,7 +144,7 @@ - + From 89d2c1c490af329ee26bf1640074cae00db3a394 Mon Sep 17 00:00:00 2001 From: Patrick Stotko Date: Tue, 19 May 2020 17:33:02 +0200 Subject: [PATCH 4/6] doc: Change wording in chapters page --- doc/stdgpu/chapters.doxy | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/stdgpu/chapters.doxy b/doc/stdgpu/chapters.doxy index e15e1a51c..0a6820a06 100644 --- a/doc/stdgpu/chapters.doxy +++ b/doc/stdgpu/chapters.doxy @@ -2,7 +2,7 @@ \page chapters Chapters -Here is a list of all modules: +Here is a list of all chapters: - \subpage memory - \subpage iterator From ad2636c7af79638cb9ae341a6ebc84b7d6a5683b Mon Sep 17 00:00:00 2001 From: Patrick Stotko Date: Tue, 19 May 2020 17:35:01 +0200 Subject: [PATCH 5/6] README,doc: Add links to documentation as well as to SLAMCast --- README.md | 27 +++++++++++++++++++-------- doc/README.md | 3 +++ doc/stdgpu/index.doxy | 26 ++++++++++++++++++-------- 3 files changed, 40 insertions(+), 16 deletions(-) create mode 100644 doc/README.md diff --git a/README.md b/README.md index 0790a938f..07cc94993 100644 --- a/README.md +++ b/README.md @@ -40,6 +40,7 @@

Features | Examples | +Documentation | Getting Started | Usage | Contributing | @@ -73,14 +74,16 @@ At its heart, stdgpu offers the following GPU data structures and containers: -In addition, stdgpu also provides commonly required functionality in `algorithm`, `bit`, `cmath`, `contract`, `cstddef`, `cstlib`, `functional`, `iterator`, `memory`, `mutex`, `ranges`, `utility` to complement the GPU data structures and to increase their usability and interoperability. +In addition, stdgpu also provides commonly required functionality in `algorithm`, `bit`, `cmath`, `contract`, `cstddef`, `cstlib`, `functional`, `iterator`, `limits`, `memory`, `mutex`, `ranges`, `utility` to complement the GPU data structures and to increase their usability and interoperability. ## Examples -In order to reliably perform tasks on the GPU, stdgpu offers flexible interfaces that can be used in both **agnostic code**, e.g. via the algorithms provided by thrust, as well as in **native code**, e.g. custom CUDA kernels. +In order to reliably perform complex tasks on the GPU, stdgpu offers flexible interfaces that can be used in both **agnostic code**, e.g. via the algorithms provided by thrust, as well as in **native code**, e.g. in custom CUDA kernels. -Agnostic code. In the context of the SLAMCast live telepresence system, a simple task is the integration of a range of updated blocks into the duplicate-free set of queued blocks for streaming which can be expressed very conveniently: +For instance, stdgpu is extensively used in SLAMCast, a scalable live telepresence system, to implement real-time, large-scale 3D scene reconstruction as well as real-time 3D data streaming between a server and an arbitrary number of remote clients. + +Agnostic code. In the context of SLAMCast, a simple task is the integration of a range of updated blocks into the duplicate-free set of queued blocks for data streaming which can be expressed very conveniently: ```cpp #include // stdgpu::index_t @@ -106,7 +109,7 @@ private: }; ``` -Native code. More complex operations such as the creation of the update set or other complex algorithms can be implemented natively, e.g. in custom CUDA kernels with stdgpu's CUDA backend enabled: +Native code. More complex operations such as the creation of the duplicate-free set of updated blocks or other algorithms can be implemented natively, e.g. in custom CUDA kernels with stdgpu's CUDA backend enabled: ```cpp #include // stdgpu::index_t @@ -152,6 +155,11 @@ compute_update_set(const short3* blocks, More examples can be found in the `examples` directory. +## Documentation + +A comprehensive API documentation of stdgpu can be found at https://stotko.github.io/stdgpu. + + ## Getting Started To compile the library, please make sure to fulfill the build requirements and execute the respective build scripts. @@ -293,13 +301,13 @@ For detailed information on how to contribute, see `LICENSE` for more information. -stdgpu has been developed as part of the SLAMCast live telepresence system which performs real-time, large-scale 3D scene reconstruction from RGB-D camera images as well as real-time data streaming between a server and an arbitrary number of remote clients. - If you use stdgpu in one of your projects, please cite the following publications: +stdgpu: Efficient STL-like Data Structures on the GPU + ``` @UNPUBLISHED{stotko2019stdgpu, - author = {Stotko, Patrick}, + author = {Stotko, P.}, title = {{stdgpu: Efficient STL-like Data Structures on the GPU}}, year = {2019}, month = aug, @@ -308,6 +316,8 @@ If you use stdgpu in one of your projects, please cite the following publication } ``` +SLAMCast: Large-Scale, Real-Time 3D Reconstruction and Streaming for Immersive Multi-Client Live Telepresence + ``` @article{stotko2019slamcast, author = {Stotko, P. and Krumpen, S. and Hullin, M. B. and Weinmann, M. and Klein, R.}, @@ -316,7 +326,8 @@ If you use stdgpu in one of your projects, please cite the following publication volume = {25}, number = {5}, pages = {2102--2112}, - year = {2019} + year = {2019}, + month = may } ``` diff --git a/doc/README.md b/doc/README.md new file mode 100644 index 000000000..e6d216cdb --- /dev/null +++ b/doc/README.md @@ -0,0 +1,3 @@ +## Documentation + +A comprehensive API documentation of stdgpu can be found at https://stotko.github.io/stdgpu. \ No newline at end of file diff --git a/doc/stdgpu/index.doxy b/doc/stdgpu/index.doxy index f504841ad..bd3a4689b 100644 --- a/doc/stdgpu/index.doxy +++ b/doc/stdgpu/index.doxy @@ -28,14 +28,16 @@ At its heart, stdgpu offers the following GPU data structures and containers: -In addition, stdgpu also provides commonly required functionality in `algorithm`, `bit`, `cmath`, `contract`, `cstddef`, `cstlib`, `functional`, `iterator`, `memory`, `mutex`, `ranges`, `utility` to complement the GPU data structures and to increase their usability and interoperability. +In addition, stdgpu also provides commonly required functionality in `algorithm`, `bit`, `cmath`, `contract`, `cstddef`, `cstlib`, `functional`, `iterator`, `limits`, `memory`, `mutex`, `ranges`, `utility` to complement the GPU data structures and to increase their usability and interoperability. \section examples Examples -In order to reliably perform tasks on the GPU, stdgpu offers flexible interfaces that can be used in both **agnostic code**, e.g. via the algorithms provided by thrust, as well as in **native code**, e.g. custom CUDA kernels. +In order to reliably perform complex tasks on the GPU, stdgpu offers flexible interfaces that can be used in both **agnostic code**, e.g. via the algorithms provided by thrust, as well as in **native code**, e.g. in custom CUDA kernels. -Agnostic code. In the context of the SLAMCast live telepresence system, a simple task is the integration of a range of updated blocks into the duplicate-free set of queued blocks for streaming which can be expressed very conveniently: +For instance, stdgpu is extensively used in SLAMCast, a scalable live telepresence system, to implement real-time, large-scale 3D scene reconstruction as well as real-time 3D data streaming between a server and an arbitrary number of remote clients. + +Agnostic code. In the context of SLAMCast, a simple task is the integration of a range of updated blocks into the duplicate-free set of queued blocks for data streaming which can be expressed very conveniently: \code{.cpp} #include // stdgpu::index_t @@ -61,7 +63,7 @@ private: }; \endcode -Native code. More complex operations such as the creation of the update set or other complex algorithms can be implemented natively, e.g. in custom CUDA kernels with stdgpu's CUDA backend enabled: +Native code. More complex operations such as the creation of the duplicate-free set of updated blocks or other algorithms can be implemented natively, e.g. in custom CUDA kernels with stdgpu's CUDA backend enabled: \code{.cpp} #include // stdgpu::index_t @@ -107,6 +109,11 @@ compute_update_set(const short3* blocks, More examples can be found in the `examples` directory. +\section documentation Documentation + +A comprehensive API documentation of stdgpu can be found at https://stotko.github.io/stdgpu. + + \section getting-started Getting Started To compile the library, please make sure to fulfill the build requirements and execute the respective build scripts. @@ -248,13 +255,13 @@ For detailed information on how to contribute, see `LICENSE` for more information. -stdgpu has been developed as part of the SLAMCast live telepresence system which performs real-time, large-scale 3D scene reconstruction from RGB-D camera images as well as real-time data streaming between a server and an arbitrary number of remote clients. - If you use stdgpu in one of your projects, please cite the following publications: +stdgpu: Efficient STL-like Data Structures on the GPU + \code{.bib} @UNPUBLISHED{stotko2019stdgpu, - author = {Stotko, Patrick}, + author = {Stotko, P.}, title = {{stdgpu: Efficient STL-like Data Structures on the GPU}}, year = {2019}, month = aug, @@ -263,6 +270,8 @@ If you use stdgpu in one of your projects, please cite the following publication } \endcode +SLAMCast: Large-Scale, Real-Time 3D Reconstruction and Streaming for Immersive Multi-Client Live Telepresence + \code{.bib} @article{stotko2019slamcast, author = {Stotko, P. and Krumpen, S. and Hullin, M. B. and Weinmann, M. and Klein, R.}, @@ -271,7 +280,8 @@ If you use stdgpu in one of your projects, please cite the following publication volume = {25}, number = {5}, pages = {2102--2112}, - year = {2019} + year = {2019}, + month = may } \endcode From 09cd323d22849ae00e3ab6765cf5f73124827560 Mon Sep 17 00:00:00 2001 From: Patrick Stotko Date: Tue, 19 May 2020 17:35:43 +0200 Subject: [PATCH 6/6] examples: Add local README for this subdirectory --- examples/README.md | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 examples/README.md diff --git a/examples/README.md b/examples/README.md new file mode 100644 index 000000000..13f691823 --- /dev/null +++ b/examples/README.md @@ -0,0 +1,7 @@ +## Examples + +This directory contains several examples demonstrating how stdgpu can be used. In particular, the examples can be divided into two classes: + +- **Host code with device support**. Examples that can be compiled and run by both the *host and device compiler* are put into this directory. This includes most of the functionality that complements the GPU data structures and containers. + +- **Device only code**. Since all GPU data structures and containers can be used in *native* code to cover as many use cases as possible, e.g. in custom CUDA kernels, the respective examples must be compiled by the *device compiler*. This requires knowledge about the chosen backend, so they are put into backend-specific subdirectories.