Skip to content

  • 体验新版
    • 正在加载...
  • 登录
  • PaddlePaddle
  • Paddle
  • Issue
  • #2505

P
Paddle
  • 项目概览

PaddlePaddle / Paddle
大约 2 年 前同步成功

通知 2325
Star 20933
Fork 5424
  • 代码
    • 文件
    • 提交
    • 分支
    • Tags
    • 贡献者
    • 分支图
    • Diff
  • Issue 1423
    • 列表
    • 看板
    • 标记
    • 里程碑
  • 合并请求 543
  • Wiki 0
    • Wiki
  • 分析
    • 仓库
    • DevOps
  • 项目成员
  • Pages
P
Paddle
  • 项目概览
    • 项目概览
    • 详情
    • 发布
  • 仓库
    • 仓库
    • 文件
    • 提交
    • 分支
    • 标签
    • 贡献者
    • 分支图
    • 比较
  • Issue 1,423
    • Issue 1,423
    • 列表
    • 看板
    • 标记
    • 里程碑
  • 合并请求 543
    • 合并请求 543
  • Pages
  • 分析
    • 分析
    • 仓库分析
    • DevOps
  • Wiki 0
    • Wiki
  • 成员
    • 成员
  • 收起侧边栏
  • 动态
  • 分支图
  • 创建新Issue
  • 提交
  • Issue看板
已关闭
开放中
Opened 6月 20, 2017 by saxon_zh@saxon_zhGuest

Source tree structure

Created by: wangkuiyi

This issue records an idea inspired by reading https://github.com/PaddlePaddle/Paddle/pull/2489/.

Majels' Style -- Extremely Deep Tree

It seems that Majel's philosophy of making each module a directory is pretty complex and makes it difficult to browse the source code. For example:

  • majel/include/majel/contrib/support/pinning.h only declares two global functions pin_memory and unpin_memory, and whose implementations are in
  • majel/include/majel/contrib/support/detail/pinning-inl.h, and pin_memory's body just calls mlock and unpin_memory calls munlock.

Caffe2 and MXNet's Style -- Extreme Shallow Tree

Most core concepts of Caffe2 are in https://github.com/caffe2/caffe2/tree/master/caffe2/core. There are 78 files in this directory -- too many to browse in a glance.

The header files of most core concepts of MXNet are in https://github.com/dmlc/mxnet/tree/master/include/mxnet. Implementations (.cc files) are in https://github.com/dmlc/mxnet/tree/master/src, which adopts TensorFlow's Style as described below:

TensorFlow's Style -- In-between Extremely Deep and Shallow

Comparing with Caffe2, TensorFlow has a second level directory:

  • tensorflow/core/platform
  • tensorflow/core/framework
  • tensorflow/core/...

and no header/source files in tensorflow/core.

A Proposal for Paddle:

  1. Represent each module by a combination of x.h, x.cc/cu, and xx_test.cc/cu, so we could
  2. have two-level source tree like TensorFlow:
    1. paddle/core/platform -- class Place, malloc_
    2. paddle/core/memory -- management and allocation, tensor type, etc
  3. In each directory, if there are some facilities that are called only by code within the same directory, we put it into detail. For example:
    1. paddle/core/memory/detail/buddy_allocator.{h,cc,_test.cc}
指派人
分配到
无
里程碑
无
分配里程碑
工时统计
无
截止日期
无
标识: paddlepaddle/Paddle#2505
渝ICP备2023009037号

京公网安备11010502055752号

网络110报警服务 Powered by GitLab CE v13.7
开源知识
Git 入门 Pro Git 电子书 在线学 Git
Markdown 基础入门 IT 技术知识开源图谱
帮助
使用手册 反馈建议 博客
《GitCode 隐私声明》 《GitCode 服务条款》 关于GitCode
Powered by GitLab CE v13.7