算子Concat 拼接包含多个 tensor 的元组出错

【操作步骤&问题现象】

input = [ Tensor(np.random.rand(32, 164), mindspore.float32) for _ in range(192)] 

P.Concat()(tuple(input))

似乎传入的 tensor list 元素个数 >= 192 就会报如下错误。

如果要 concat 包含多个 tensor 的元组,有什么较好的解决方案(动态模式下运行)?

RuntimeError: mindspore/ccsrc/backend/kernel_compiler/tbe/tbe_kernel_parallel_build.cc:88 TbeOpParallelBuild] ArgumentError task compile Failed, task id:3, cause:TBEException:ERROR:

Error: Input and (output + workspace) num should <= 192!

File path: /usr/local/Ascend/opp/op_impl/built-in/ai_core/tbe/impl/concat_tik.py, line 1393

The context code cause the exception is:

1390                kernel_name=self.kernel_name,

1391                inputs=self.input_tensors,

1392                outputs=(self.output_tensor,),

1393 ->             enable_l2=False)

1394

1395            return self.tik_instance

1396

Traceback:

  File /home/miniconda3/envs/ci/lib/python3.7/site-packages/mindspore/_extends/parallel_compile/tbe_compiler/compiler.py, line 154, in <module>

     result = compile_with_json(in_args)

  File /home/miniconda3/envs/ci/lib/python3.7/site-packages/mindspore/_extends/parallel_compile/tbe_compiler/compiler.py, line 149, in compile_with_json

         ret = build_op(op_build, json_str)

  File /home/miniconda3/envs/ci/lib/python3.7/site-packages/mindspore/_extends/parallel_compile/tbe_compiler/compiler.py, line 113, in build_op

             return op_func(*inputs_args, *outputs_args, *attrs_args, kernel_name=kernel_name)

  File /home/miniconda3/envs/ci/lib/python3.7/site-packages/te/utils/para_check.py, line 529, in _in_wrapper

             return func(*args, **kwargs)

  File /usr/local/Ascend/opp/op_impl/built-in/ai_core/tbe/impl/pack.py, line 110, in pack

     concat_v2_d(x, y, axis, kernel_name)

  File /home/miniconda3/envs/ci/lib/python3.7/site-packages/te/utils/para_check.py, line 529, in _in_wrapper

             return func(*args, **kwargs)

  File /usr/local/Ascend/opp/op_impl/built-in/ai_core/tbe/impl/concat_v2_d.py, line 290, in concat_v2_d

         concat_s.concat_compute()

  File /usr/local/Ascend/opp/op_impl/built-in/ai_core/tbe/impl/concat_tik.py, line 1393, in concat_compute

             enable_l2=False)

解答:

这个昇腾算子底层规格限制一次拼接的Tensor个数不能超过192个,你分开两次进行拼接吧。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值