未验证 提交 43919d0a 编写于 作者: J Jacek Czaja 提交者: GitHub

Remved redundant defintions of likely/unlikely (#38911)

* - more unlikely

* - compilation fix

* - removed redundant definition

* - fix

* - Fixes

* - compilation fix for windows
上级 a1e40dc6
...@@ -19,14 +19,18 @@ ...@@ -19,14 +19,18 @@
#define _LINUX #define _LINUX
#endif #endif
#ifdef _LINUX
#ifndef likely #ifndef likely
#define likely(x) __builtin_expect((x), 1) #ifdef _LINUX
#define likely(expr) (__builtin_expect(!!(expr), 1))
#else
#define likely(expr) (expr)
#endif #endif
#endif #endif
#ifdef _LINUX
#ifndef unlikely #ifndef unlikely
#define unlikely(x) __builtin_expect((x), 0) #ifdef _LINUX
#define unlikely(expr) (__builtin_expect(!!(expr), 0))
#else
#define unlikely(expr) (expr)
#endif #endif
#endif #endif
...@@ -12,6 +12,7 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. ...@@ -12,6 +12,7 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and See the License for the specific language governing permissions and
limitations under the License. */ limitations under the License. */
#include "paddle/fluid/framework/expect.h"
#include "paddle/fluid/operators/fused/fusion_gru_op.h" #include "paddle/fluid/operators/fused/fusion_gru_op.h"
#include "paddle/fluid/operators/fused/mkldnn/fusion_rnn_mkldnn.h" #include "paddle/fluid/operators/fused/mkldnn/fusion_rnn_mkldnn.h"
...@@ -41,7 +42,7 @@ class GRUMKLDNNHandler : public RNNMKLDNNHandler<T, dnnl::gru_forward, T_out> { ...@@ -41,7 +42,7 @@ class GRUMKLDNNHandler : public RNNMKLDNNHandler<T, dnnl::gru_forward, T_out> {
ctx.InputName("X") + ctx.InputName("WeightH")) { ctx.InputName("X") + ctx.InputName("WeightH")) {
const bool is_INT8 = std::is_same<T, uint8_t>::value; const bool is_INT8 = std::is_same<T, uint8_t>::value;
if (!this->isCached()) { if (unlikely(!this->isCached())) {
// oneDNN kernel has hardcoded activation functions // oneDNN kernel has hardcoded activation functions
PADDLE_ENFORCE_EQ( PADDLE_ENFORCE_EQ(
ctx.Attr<std::string>("gate_activation"), "sigmoid", ctx.Attr<std::string>("gate_activation"), "sigmoid",
......
...@@ -12,6 +12,7 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. ...@@ -12,6 +12,7 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and See the License for the specific language governing permissions and
limitations under the License. */ limitations under the License. */
#include "paddle/fluid/framework/expect.h"
#include "paddle/fluid/operators/fused/fusion_lstm_op.h" #include "paddle/fluid/operators/fused/fusion_lstm_op.h"
#include "paddle/fluid/operators/fused/mkldnn/fusion_rnn_mkldnn.h" #include "paddle/fluid/operators/fused/mkldnn/fusion_rnn_mkldnn.h"
...@@ -40,7 +41,7 @@ class LSTMMKLDNNHandler ...@@ -40,7 +41,7 @@ class LSTMMKLDNNHandler
ctx, dev_ctx, mkldnn_engine, ctx.GetPlace(), input, weight_h, h0, ctx, dev_ctx, mkldnn_engine, ctx.GetPlace(), input, weight_h, h0,
is_reverse, N, Ti, IC, OC, 4, is_reverse, N, Ti, IC, OC, 4,
ctx.InputName("X") + ctx.InputName("WeightH")) { ctx.InputName("X") + ctx.InputName("WeightH")) {
if (!this->isCached()) { if (unlikely(!this->isCached())) {
const bool is_INT8 = std::is_same<T, uint8_t>::value; const bool is_INT8 = std::is_same<T, uint8_t>::value;
const bool use_peepholes = ctx.Attr<bool>("use_peepholes"); const bool use_peepholes = ctx.Attr<bool>("use_peepholes");
// oneDNN kernel has hardcoded activation functions // oneDNN kernel has hardcoded activation functions
......
...@@ -14,6 +14,7 @@ ...@@ -14,6 +14,7 @@
#include <tuple> #include <tuple>
#include "paddle/fluid/framework/expect.h"
#include "paddle/fluid/operators/conv_op.h" #include "paddle/fluid/operators/conv_op.h"
#include "paddle/fluid/platform/cpu_info.h" #include "paddle/fluid/platform/cpu_info.h"
#include "paddle/fluid/platform/mkldnn_helper.h" #include "paddle/fluid/platform/mkldnn_helper.h"
...@@ -79,7 +80,7 @@ class ConvMKLDNNHandlerT ...@@ -79,7 +80,7 @@ class ConvMKLDNNHandlerT
dev_ctx, mkldnn_engine, cpu_place, dev_ctx, mkldnn_engine, cpu_place,
platform::CreateKey(dev_ctx, framework::vectorize(input->dims()), platform::CreateKey(dev_ctx, framework::vectorize(input->dims()),
unique_name)) { unique_name)) {
if (!this->isCached()) { if (unlikely(!this->isCached())) {
PADDLE_ENFORCE_EQ( PADDLE_ENFORCE_EQ(
input->layout(), framework::DataLayout::kMKLDNN, input->layout(), framework::DataLayout::kMKLDNN,
platform::errors::InvalidArgument( platform::errors::InvalidArgument(
...@@ -264,7 +265,7 @@ class ConvMKLDNNHandlerT ...@@ -264,7 +265,7 @@ class ConvMKLDNNHandlerT
dev_ctx, dev_ctx.GetEngine(), cpu_place, dev_ctx, dev_ctx.GetEngine(), cpu_place,
platform::CreateKey(dev_ctx, framework::vectorize(in->dims()), platform::CreateKey(dev_ctx, framework::vectorize(in->dims()),
unique_name)) { unique_name)) {
if (!this->isBwdCached()) { if (unlikely(!this->isBwdCached())) {
PADDLE_ENFORCE_EQ( PADDLE_ENFORCE_EQ(
in->layout(), framework::DataLayout::kMKLDNN, in->layout(), framework::DataLayout::kMKLDNN,
platform::errors::InvalidArgument( platform::errors::InvalidArgument(
......
...@@ -12,6 +12,7 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. ...@@ -12,6 +12,7 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and See the License for the specific language governing permissions and
limitations under the License. */ limitations under the License. */
#include "paddle/fluid/framework/expect.h"
#include "paddle/fluid/platform/mkldnn_reuse.h" #include "paddle/fluid/platform/mkldnn_reuse.h"
namespace paddle { namespace paddle {
...@@ -39,7 +40,7 @@ class PReluMKLDNNHandler ...@@ -39,7 +40,7 @@ class PReluMKLDNNHandler
dev_ctx, engine, cpu_place, dev_ctx, engine, cpu_place,
platform::CreateKey(dev_ctx, framework::vectorize(x->dims()), platform::CreateKey(dev_ctx, framework::vectorize(x->dims()),
uniq_name)) { uniq_name)) {
if (!this->isCached()) { if (unlikely(!this->isCached())) {
auto x_md = memory::desc(framework::vectorize(x->dims()), auto x_md = memory::desc(framework::vectorize(x->dims()),
MKLDNNGetDataType<T>(), x->format()); MKLDNNGetDataType<T>(), x->format());
......
...@@ -25,6 +25,7 @@ limitations under the License. */ ...@@ -25,6 +25,7 @@ limitations under the License. */
#include "paddle/fluid/platform/ipu/ipu_backend.h" #include "paddle/fluid/platform/ipu/ipu_backend.h"
#endif #endif
#include "glog/logging.h" #include "glog/logging.h"
#include "paddle/fluid/framework/expect.h"
#include "paddle/fluid/platform/profiler.h" #include "paddle/fluid/platform/profiler.h"
namespace paddle { namespace paddle {
...@@ -841,15 +842,6 @@ unsigned int MKLDNNDeviceContext::GetCachedObjectsNumber(void) const { ...@@ -841,15 +842,6 @@ unsigned int MKLDNNDeviceContext::GetCachedObjectsNumber(void) const {
return num_entries; return num_entries;
} }
// TODO(jczaja): Replace with C++20 equivalents when applicable
#ifdef _WIN32
#define likely(expr) (expr)
#define unlikely(expr) (expr)
#else
#define likely(expr) (__builtin_expect(!!(expr), 1))
#define unlikely(expr) (__builtin_expect(!!(expr), 0))
#endif
MKLDNNDeviceContext::BlobPtr_t<void> MKLDNNDeviceContext::GetBlob( MKLDNNDeviceContext::BlobPtr_t<void> MKLDNNDeviceContext::GetBlob(
const std::string& name) const { const std::string& name) const {
BlobMap* pMap = p_blobmap_.get(); BlobMap* pMap = p_blobmap_.get();
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册