Skip to content
This repository has been archived by the owner on Aug 11, 2020. It is now read-only.

half_t multiplication #125

Open
vchuravy opened this issue Jun 1, 2016 · 1 comment
Open

half_t multiplication #125

vchuravy opened this issue Jun 1, 2016 · 1 comment

Comments

@vchuravy
Copy link
Contributor

vchuravy commented Jun 1, 2016

/home/wallnuss/src/mxnet/mshadow/mshadow/././half.h: In instantiation of ‘mshadow::half::half_t mshadow::half::operator*(mshadow::half::half_t, T) [with T = mshadow::expr::CroppingExp<mshadow::expr::MakeTensorExp<mshadow::expr::UnPoolingExp<mshadow::red::maximum, mshadow::expr::MakeTensorExp<mshadow::expr::PaddingExp<mshadow::Tensor<mshadow::cpu, 4, mshadow::half::half_t>, mshadow::half::half_t, 4>, mshadow::Tensor<mshadow::cpu, 4, mshadow::half::half_t>, 4, mshadow::half::half_t>, mshadow::half::half_t, 4>, mshadow::expr::MakeTensorExp<mshadow::expr::PaddingExp<mshadow::Tensor<mshadow::cpu, 4, mshadow::half::half_t>, mshadow::half::half_t, 4>, mshadow::Tensor<mshadow::cpu, 4, mshadow::half::half_t>, 4, mshadow::half::half_t>, 4, mshadow::half::half_t>, mshadow::half::half_t, 4>]’:
src/operator/./pooling-inl.h:145:7:   required from ‘void mxnet::op::PoolingOp<xpu, Reducer, DType>::Backward(const mxnet::OpContext&, const std::vector<mshadow::TBlob>&, const std::vector<mshadow::TBlob>&, const std::vector<mshadow::TBlob>&, const std::vector<mxnet::OpReqType>&, const std::vector<mshadow::TBlob>&, const std::vector<mshadow::TBlob>&) [with xpu = mshadow::cpu; Reducer = mshadow::red::maximum; DType = mshadow::half::half_t]’
src/operator/pooling.cc:47:1:   required from here
/home/wallnuss/src/mxnet/mshadow/mshadow/././half.h:248:31: error: invalid cast from type ‘mshadow::expr::CroppingExp<mshadow::expr::MakeTensorExp<mshadow::expr::UnPoolingExp<mshadow::red::maximum, mshadow::expr::MakeTensorExp<mshadow::expr::PaddingExp<mshadow::Tensor<mshadow::cpu, 4, mshadow::half::half_t>, mshadow::half::half_t, 4>, mshadow::Tensor<mshadow::cpu, 4, mshadow::half::half_t>, 4, mshadow::half::half_t>, mshadow::half::half_t, 4>, mshadow::expr::MakeTensorExp<mshadow::expr::PaddingExp<mshadow::Tensor<mshadow::cpu, 4, mshadow::half::half_t>, mshadow::half::half_t, 4>, mshadow::Tensor<mshadow::cpu, 4, mshadow::half::half_t>, 4, mshadow::half::half_t>, 4, mshadow::half::half_t>, mshadow::half::half_t, 4>’ to type ‘float’
 MSHADOW_HALF_OPERATOR(half_t, *)
                               ^
/home/wallnuss/src/mxnet/mshadow/mshadow/././half.h:35:27: note: in definition of macro ‘MSHADOW_HALF_OPERATOR’
     return RTYPE(float(a) OP float(b));  /* NOLINT(*) */

I am encountering this in apache/mxnet#2280 for a case where I have constant * expr.
I am not that familiar with how mshadow works so I am wondering if it might be some weird interaction between the half_t implementation of multiplication taking precedent
over the expr multiplication.

@szha
Copy link
Member

szha commented Aug 4, 2019

This code base has been donated to the Apache MXNet project per #373, and repo is deprecated. Future development and issue tracking should continue in Apache MXNet.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants