diff --git a/README.md b/README.md index c8650b4e1..b749a6c2b 100644 --- a/README.md +++ b/README.md @@ -176,7 +176,7 @@ Simplified Kompute Components

- + diff --git a/docs/conf.py b/docs/conf.py index 6b3384139..a6a3de48f 100755 --- a/docs/conf.py +++ b/docs/conf.py @@ -51,7 +51,6 @@ templates_path = ['_templates'] # This pattern also affects html_static_path and html_extra_path. exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store'] - # -- Options for HTML output ------------------------------------------------- # The theme to use for HTML and HTML Help pages. See the documentation for @@ -76,6 +75,10 @@ if html_theme == 'sphinx_material': 'globaltoc_includehidden': False, } +html_sidebars = { + "**": ["logo-text.html", "globaltoc.html", "searchbox.html"] +} + # Add any paths that contain custom static files (such as style sheets) here, # relative to this directory. They are copied after the builtin static files, # so a file named "default.css" will overwrite the builtin "default.css". diff --git a/docs/genindex.rst b/docs/genindex.rst new file mode 100644 index 000000000..4eef4a23b --- /dev/null +++ b/docs/genindex.rst @@ -0,0 +1,4 @@ +.. This file is a placeholder and will be replaced + +Code index +########## diff --git a/docs/images/suspicious.jfif b/docs/images/suspicious.jfif new file mode 100755 index 000000000..1e7455750 Binary files /dev/null and b/docs/images/suspicious.jfif differ diff --git a/docs/index.rst b/docs/index.rst index 35a411b92..995b56cf7 100755 --- a/docs/index.rst +++ b/docs/index.rst @@ -1,105 +1,17 @@ -.. Vulkan Kompute documentation master file, created by - sphinx-quickstart on Fri Aug 28 06:42:00 2020. - You can adapt this file completely to your liking, but it should at least - contain the root `toctree` directive. -Welcome to Vulkan Kompute's documentation! +Kompute Docs Home ========================================== .. mdinclude:: ../README.md +Index +-------- + .. toctree:: - :maxdepth: 2 - :caption: Contents: + :maxdepth: 2 + :titlesonly: + Class Reference + Memory management principles + Code Index -Reference -======== - -You can also go directoy to the `raw doxygen docs `_ - -Overview of entire dependencies and their relationship with vulkan component ownership. - -.. image:: images/kompute-vulkan-architecture.jpg - :width: 100% - -Manager -------- - -.. doxygenclass:: kp::Manager - :members: - -.. image:: images/kompute-vulkan-architecture-manager.jpg - :width: 100% - -Sequence -------- - -.. doxygenclass:: kp::Sequence - :members: - -.. image:: images/kompute-vulkan-architecture-sequence.jpg - :width: 100% - -Tensor -------- - -.. doxygenclass:: kp::Tensor - :members: - -.. image:: images/kompute-vulkan-architecture-tensor.jpg - :width: 100% - -Algorithm -------- - -.. doxygenclass:: kp::Algorithm - :members: - -.. image:: images/kompute-vulkan-architecture-algorithm.jpg - :width: 100% - -OpBase -------- - -.. doxygenclass:: kp::OpBase - :members: - -.. image:: images/kompute-vulkan-architecture-operations.jpg - :width: 100% - -OpAlgoBase -------- - -.. doxygenclass:: kp::OpAlgoBase - :members: - -.. image:: images/kompute-vulkan-architecture-opmult.jpg - :width: 100% - -OpMult -------- - -.. doxygenclass:: kp::OpMult - :members: - -.. image:: images/kompute-vulkan-architecture-opmult.jpg - :width: 100% - -OpCreateTensor -------- - -.. doxygenclass:: kp::OpCreateTensor - :members: - -.. image:: images/kompute-vulkan-architecture-opcreatetensor.jpg - :width: 100% - - - -Indices and tables -================== - -* :ref:`genindex` -* :ref:`modindex` -* :ref:`search` diff --git a/docs/overview/memory-management.rst b/docs/overview/memory-management.rst new file mode 100755 index 000000000..693214682 --- /dev/null +++ b/docs/overview/memory-management.rst @@ -0,0 +1,14 @@ + +Memory Management Principles +===================== + +The principle in Vulkan Kompute on memory management is summarised as follows: +* Explicit is better than implicit for specifying memory management +* Interfaces for memory management are constant until freed +* Memory management responsibilities are acyclic from static object references + +Vulkan Kompute is responsible for managing both the CPU and GPU memory allocations and resources, and is important that they are able to explicitly define when these objects are released or destroyed. Similarly, it's important that the memory resources created by the application are released safely. + +Vulkan Kompute is built with the BYOV principle in mind (Bring your own Vulkan). This means that even though the top level resources are managing the memory to its owned resources, they themselves may not have full ownership of the GPU / Vulkan components themselves. + + diff --git a/docs/overview/reference.rst b/docs/overview/reference.rst new file mode 100644 index 000000000..6711f680d --- /dev/null +++ b/docs/overview/reference.rst @@ -0,0 +1,83 @@ + +Reference +======== + +This section provides a breakdown of the cpp classes and what each of their functions provide. It is partially generated and augomented from the Doxygen autodoc content. You can also go directly to the `raw doxygen docs `_. + +Below is a diagram that provides insights on the relationship between Vulkan Kompute objects and Vulkan resources, which primarily encompass ownership of either CPU and/or GPU memory. + +.. image:: ../images/kompute-vulkan-architecture.jpg + :width: 100% + +Manager +------- + +.. doxygenclass:: kp::Manager + :members: + +.. image:: ../images/kompute-vulkan-architecture-manager.jpg + :width: 100% + +Sequence +------- + +.. doxygenclass:: kp::Sequence + :members: + +.. image:: ../images/kompute-vulkan-architecture-sequence.jpg + :width: 100% + +Tensor +------- + +.. doxygenclass:: kp::Tensor + :members: + +.. image:: ../images/kompute-vulkan-architecture-tensor.jpg + :width: 100% + +Algorithm +------- + +.. doxygenclass:: kp::Algorithm + :members: + +.. image:: ../images/kompute-vulkan-architecture-algorithm.jpg + :width: 100% + +OpBase +------- + +.. doxygenclass:: kp::OpBase + :members: + +.. image:: ../images/kompute-vulkan-architecture-operations.jpg + :width: 100% + +OpAlgoBase +------- + +.. doxygenclass:: kp::OpAlgoBase + :members: + +.. image:: ../images/kompute-vulkan-architecture-opmult.jpg + :width: 100% + +OpMult +------- + +.. doxygenclass:: kp::OpMult + :members: + +.. image:: ../images/kompute-vulkan-architecture-opmult.jpg + :width: 100% + +OpCreateTensor +------- + +.. doxygenclass:: kp::OpCreateTensor + :members: + +.. image:: ../images/kompute-vulkan-architecture-opcreatetensor.jpg + :width: 100% +