切换版块
×
基础软件平台
PyTorch开发
TensorFlow开发
编解码及SDK开发
BANG语言与计算库
开发工具链
MagicMind开发
软件栈百科
云平台集成
硬件产品专区
MLU370系列AI加速卡
MLU270系列AI加速卡
MLU220系列AI加速产品
经验方案交流区
经验案例与实践分享
开发者服务
开发者活动
公告与版务
高校支持
《智能计算系统》
签到
版块
社区
文档
SDK下载
370系列
200系列
开发平台
官网首页
注册
登录
全部版块
基础软件平台
硬件产品专区
经验方案交流区
开发者服务
高校支持
发布新帖
登录/注册
LV.1
幺白幺木
115
积分
0
赞
13
帖子
57
回复
0
收藏
TA的动态
TA的帖子
TA的回复
220里cpu的详细参数是什么
我的回复:#1wuwangdong回复mlu220内部除了推理核和编解码核,还有4颗A55做任务调度的工作,你是想了解这4颗A55的具体参数吗?就是四核A55的上述具体参数
0
220里cpu的详细参数是什么
我的回复:#1wuwangdong回复mlu220内部除了推理核和编解码核,还有4颗A55做任务调度的工作,你是想了解这4颗A55的具体参数吗?Target options -> Target Architecture = ARM (little endian) -> Target Binary Format = ELF -> Target Architecture Variant = cortex-A7 -> Target ABI = EABIhf -> Floating point strategy = NEON/VFPv4 -> ARM instruction set = ARM我想了解我发的这些参数都是什么,Architecture,Binary Format之类的
0
cnrtLoadModel()能加载哪些模型
我的回复:#1HelloAI回复cnrtLoadModel加载的就是.cambricon格式的模型,你在例子中看到的.mef文件其实也是.cambricon格式模型,只是文件名后缀不同而已展开明白了,感谢
0
怎样通过cnperf工具测试mlu卡的tops
我的回复:#4JCBCam回复[图片]我知道怎么使用cnperf,但你这张图里面我并没有看见哪条信息包含有tops的值啊?
0
怎样通过cnperf工具测试mlu卡的tops
我的回复:#1JCBCam回复您好,cnperf record后用cnperf report命令可以看到函数统计,report 命令⽤来查看性能数据的汇总信息, 包括函数基本信息, Kernel 信息,内存操作信息(时间/字节数)。具体使用方法请参考cnperf文档,[图片]或者timechart上框选一部分函数后,下方也会出一个统计,类似下图[图片]展开所以我应该怎么计算tops呢?
0
mlu算子的libtorch输出input不对
我的回复:#11hwj回复ok,您这边先自己调试一下,如果再有问题,可以附件添加修改文件以及描述操作修改流程,以便我们复现及定位问题你好,我还有一个问题,就是bangc输出的tensor传回pytorch(libtorch)的时候会经过一次自动的NHWC到NCHW的转换,有什么方法能不进行这一步,或者是在libtorch里让NCHW转回NHWC吗?因为我的bangc已经输出正确结果了,然后经过这个自动转换输出就错了。
0
mlu算子的libtorch输出input不对
我的回复:#9guowenxin回复这个问题是解决了吗,请问另一个是哪一个?没有解决,整个流程的包太大了,但是我已经知道libtorch和bangc之间的维度变换规则了,之前想输出input是为了看tensor是在哪个地方开始变的。
0
编写nn.PixelShuffle时遇到的性能优化问题
我的回复:#1guowenxin回复你好,1.nram也支持单元素的赋值操作,这样比频繁访问gdram要好些。为了使用向量指令,建议看一下bang_collect或者bang_select指令是否满足你的算法需求展开好的,多谢多谢
0
mlu算子的libtorch输出input不对
我的回复:#7gaoxuan回复您好 方便把整个的流程或者工程包传上来吗?能先看看我另一个帖子吗?
0
mlu算子的libtorch输出input不对
我的回复:#4踏雪寻梅回复尊敬的开发者您好,请提供您使用的板卡型号及SDK版本。另外请问是否方便将您这边验证出错的代码发出,我们分析后给您反馈。展开Mlu版本信息:cat /proc/driver/cambricon/mlus/0000:17:00.0/informationDevice name: MLU270-F4Device inode path: /dev/cambricon_dev0Device Major: 234Device Minor: 0Driver Version: v4.9.2MCU Version: v1.1.4Board Serial Number: SN/182101100027MLU Firmware Version: 4.9.2Board CV: 1IPU Freq: 1000MHzInterrupt Mode: MSIBus Location: 17_0_0Bus Type: PCIELnkCap: Speed 8.0GT/s, Width x16Region 0: Memory at 80000000 [size=256M]Region 2: Memory at 78000000 [size=64M]Region 4: Memory at 7c000000 [size=64M]验证代码为加粗加大的cout<<input<<endl#include "aten/operators/cnml/internal/cnml_internal.h"#include "iostream"using namespace std;namespace torch_mlu {namespace cnml {namespace ops {at::Tensor cnml_pixelshuffle_internal(const at::Tensor& input, const int64_t input_r) { auto options = at::TensorOptions(c10::ScalarType::Float).device(at::DeviceType::MLU); auto input_size = input.sizes().vec(); int r = input_r; std::vector<int64_t> output_shape(4); output_shape[0] = input_size[0]; output_shape[1] = input_size[1] / (r * r); output_shape[2] = input_size[2] * r; output_shape[3] = input_size[3] * r; auto output = at::empty(output_shape, input.options()); // prepare input cnml tensor cnmlTensor_t input_cnml_tensor[1]; auto* input_impl = getMluTensorImpl(input); input_cnml_tensor[0] = input_impl->CreateCnmlTensor(CNML_TENSOR, toCnmlDataType(input.dtype())); // prepare output cnml tensor cnmlTensor_t output_cnml_tensor[1]; auto* output_impl = getMluTensorImpl(output); output_cnml_tensor[0] = output_impl->CreateCnmlTensor(CNML_TENSOR, toCnmlDataType(output.dtype())); // End the execution flow if not MLU device CHECK_MLU_DEVICE(output); int total_number = input.numel(); int dtype = 0; switch (toCnmlDataType(input.dtype())) { case CNML_DATA_FLOAT32: dtype = 4; break; case CNML_DATA_FLOAT16: dtype = 2; break; default: CNLOG(ERROR) << "Pixelshuffle op only supports FLOAT32 & FLOAT16"; } // for(int i = 0; i < total_number; i++) // std::cout<<*((float*)(input+i))<<std::endl; cout<<input<<endl // setup operator cnmlBaseOp_t pixelshuffle_op; cnmlPluginPixelshuffleOpParam_t param; TORCH_CNML_CHECK(cnmlCreatePluginPixelshuffleOpParam(¶m, total_number, input_size[0], input_size[2], input_size[3], input_size[1], input_r, dtype, GET_CORE_VERSION)); TORCH_CNML_CHECK(cnmlCreatePluginPixelshuffleOp(&pixelshuffle_op, param, input_cnml_tensor, output_cnml_tensor)); // return to JIT if running mode is fuse CHECK_RETURN_TO_FUSE(pixelshuffle_op, output); auto queue = getCurQueue(); // compile op TORCH_CNML_CHECK(cnmlCompileBaseOp(pixelshuffle_op, GET_CORE_VERSION, GET_CORE_NUMBER)); // compute operator void* input_ptrs[1]; input_ptrs[0] = input_impl->raw_mutable_data(); cout<<input_ptrs[0]<<endl; void* output_ptrs[1]; output_ptrs[0] = output_impl->raw_mutable_data(); TORCH_CNML_CHECK(cnmlComputePluginPixelshuffleOpForward(pixelshuffle_op, input_ptrs, 1, output_ptrs, 1, queue)); syncQueue(queue); // destroy params and ops if (param != nullptr) { TORCH_CNML_CHECK(cnmlDestroyPluginPixelshuffleOpParam(¶m)); param = nullptr; } if (pixelshuffle_op != nullptr) { TORCH_CNML_CHECK(cnmlDestroyBaseOp(&pixelshuffle_op)); pixelshuffle_op = nullptr; } // std::cout<<output<<std::endl; // output.print(); return output;}} // namespace ops} // namespace cnml} // namespace torch_mlu
0
上一页
1
2
3
下一页
Github
开发平台
文档中心
新手必读
官方微信
版权所有 © 2024 寒武纪 Cambricon.com 备案/许可证号:
京ICP备17003415号-1
关闭