已关闭
[Course-Feedback|课程反馈]: <MC2融合算子开发系列教程> 02.10编译与运行使用不同构建目录导致无法执行刚生成的程序 #366
Young创建于  7月31日关闭于  8月18日
Young
Young
7月31日 创建

Thanks for sending an issue! Please fill in the following template to help quickly solve your problem.

一、课程名称 (必填)

MC2融合算子开发系列教程

涉及文件:

tutorials/MC2_fused_operator_development/02_MoE_basic_operator_tutorial/02.10_moe_dispatch_and_combine_practice.ipynb

二、反馈类型 (必填)

课程内容错误

三、反馈详情 (必填)

02.10_moe_dispatch_and_combine_practice.ipynb 的编译单元格和运行单元格使用了两套不同的构建目录,导致运行步骤没有执行上一单元格刚刚生成的程序。

1. 编译单元格使用 practice_workspace/build

课程在编译单元格中设置:

PRACTICE_DIR = os.path.abspath("practice_workspace")
BUILD_DIR = os.path.join(PRACTICE_DIR, "build")

随后执行:

!source {CANN_ENV} && \
    cmake -S {PRACTICE_DIR} -B {BUILD_DIR} \
        -DCMAKE_BUILD_TYPE=Release \
        -DASCEND_CANN_PACKAGE_PATH={CANN_ROOT} && \
    cmake --build {BUILD_DIR} \
        --target moe_dispatch_and_combine_story -j

因此,该单元格生成的 CMake 构建目录为:

practice_workspace/build

课程前文也说明:

practice_workspace/ 是完全自包含的工程

2. 运行单元格改为外部 cann-samples/build_practice

但紧接着的运行单元格重新定义了 BUILD_DIR

CANN_SAMPLES_ROOT = os.path.abspath(
    os.path.join("..", "..", "..", "..", "cann-samples")
)

BUILD_DIR = os.path.join(
    CANN_SAMPLES_ROOT,
    "build_practice"
)

并从以下位置查找可执行文件:

EXE = os.path.join(
    BUILD_DIR,
    "Samples",
    "2_Performance",
    "moe_dispatch_and_combine_story",
    "moe_dispatch_and_combine_story"
)

该路径指向的是课程目录之外的:

../../../../cann-samples/build_practice/

而不是上一单元格实际使用的:

practice_workspace/build/

因此存在以下问题:

  1. 运行单元格不会执行上一单元格刚刚编译生成的程序;
  2. 如果当前环境中没有额外克隆 cann-samples 仓库,路径会直接不存在;
  3. 与课程所述“practice_workspace 是完全自包含工程”相矛盾。

建议修改

建议编译和运行步骤统一使用同一个 BUILD_DIR,并在 practice_workspace/build 中查找刚生成的可执行文件。

四、环境信息 (可选)

💡 备注(选填)

likedislike
ink_polymer
ink_polymer成员
7月31日 评论:

尊敬的开发者您好,您的建议已收到,待内部评估后反馈,感谢您的支持

likedislike
jiangxiuhan
jiangxiuhan
8月17日 评论:

issue已在关联PR修复

likedislike
chenmingyu
chenmingyu成员
8月18日 评论:

尊敬的开发者,您好!
您提出的issue已在关联的PR中解决,感谢您的贡献,如果有其他问题,欢迎在issue中讨论。

likedislike
chenmingyuchenmingyu成员
8月18日 issue状态由 进行中 改变为 已完成
chenmingyuchenmingyu成员
8月18日 关闭了 issue
CANN-robotCANN-robot成员
8月18日 添加了label:resolved