flexflow / FlexFlow

FlexFlow Serve: Low-Latency, High-Performance LLM Serving
https://flexflow.readthedocs.io
Apache License 2.0
1.59k stars 218 forks source link

Documentation of internals of un-labelled graphs #1343

Closed lockshaw closed 1 week ago

lockshaw commented 3 months ago

Currently the internals section of the README for graph (https://github.com/flexflow/FlexFlow/tree/repo-refactor/lib/utils/include/utils/graph#internals) is empty. It would be good to have a high-level overview that explains the overall design (inheritance, cow_ptr_t, value semantics and views, etc.) and the reasons behind it along the lines of https://diataxis.fr/explanation/. Since the graph library is large let's start out by just documenting the un-labelled graphs (Graph, GraphView, DiGraph, DiGraphView, MultiDiGraph, MultiDiGraphView) and associated interface classes (i.e., IDiGraphView, etc.). Diagrams will likely be quite useful (feel free to use plantuml). It will probably also be a good idea to have some motivating examples of, for example, the API that would result from not having cow_ptr_t, not having the distinction between DiGraph and IDiGraph, etc. Other examples of this general style of documentation in FlexFlow are the READMEs for visitable (https://github.com/flexflow/FlexFlow/blob/repo-refactor/lib/utils/README.md) and the existing graph documentation (https://github.com/flexflow/FlexFlow/blob/repo-refactor/lib/utils/include/utils/graph/README.md).

Marsella8 commented 1 week ago

replaced by #1391