Merge pull request #12988 from panyx0718/ir2
program and tensor versioning supportfix-develop-build.sh
commit
17bf8713a5
@ -0,0 +1,36 @@
|
||||
/* Copyright (c) 2018 PaddlePaddle Authors. All Rights Reserved.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License. */
|
||||
|
||||
#include "paddle/fluid/framework/version.h"
|
||||
#include <algorithm>
|
||||
|
||||
namespace paddle {
|
||||
namespace framework {
|
||||
bool IsProgramVersionSupported(int64_t version) {
|
||||
static int num_supported =
|
||||
sizeof(kSupportedProgramVersion) / sizeof(kSupportedProgramVersion[0]);
|
||||
return std::find(kSupportedProgramVersion,
|
||||
kSupportedProgramVersion + num_supported,
|
||||
version) != kSupportedProgramVersion + num_supported;
|
||||
}
|
||||
|
||||
bool IsTensorVersionSupported(uint32_t version) {
|
||||
static int num_supported =
|
||||
sizeof(kSupportedTensorVersion) / sizeof(kSupportedTensorVersion[0]);
|
||||
return std::find(kSupportedTensorVersion,
|
||||
kSupportedTensorVersion + num_supported,
|
||||
version) != kSupportedTensorVersion + num_supported;
|
||||
}
|
||||
} // namespace framework
|
||||
} // namespace paddle
|
@ -0,0 +1,47 @@
|
||||
/* Copyright (c) 2018 PaddlePaddle Authors. All Rights Reserved.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License. */
|
||||
|
||||
#include <cstdint>
|
||||
|
||||
#pragma once
|
||||
|
||||
namespace paddle {
|
||||
namespace framework {
|
||||
|
||||
// Note:
|
||||
// Program and Tensor that pass the IsXXXVersionSupported should
|
||||
// be supported by the current codes. Otherwise, it's a compatibility
|
||||
// bug.
|
||||
|
||||
// The program version the current codes generate.
|
||||
constexpr int64_t kCurProgramVersion = 0;
|
||||
|
||||
// The program version that was generated by previous or current codes
|
||||
// and supported by current codes.
|
||||
constexpr int64_t kSupportedProgramVersion[] = {0};
|
||||
|
||||
// Due to historical reasons, tensor version use uint32_t.
|
||||
// The tensor version the current codes generate.
|
||||
constexpr uint32_t kCurTensorVersion = 0;
|
||||
|
||||
// The tensor version that was generated by previous or current codes
|
||||
// and supported by current codes.
|
||||
constexpr uint32_t kSupportedTensorVersion[] = {0};
|
||||
|
||||
bool IsProgramVersionSupported(int64_t version);
|
||||
|
||||
bool IsTensorVersionSupported(uint32_t version);
|
||||
|
||||
} // namespace framework
|
||||
} // namespace paddle
|
@ -0,0 +1,30 @@
|
||||
// Copyright (c) 2018 PaddlePaddle Authors. All Rights Reserved.
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
#include "paddle/fluid/framework/version.h"
|
||||
#include "gtest/gtest.h"
|
||||
|
||||
namespace paddle {
|
||||
namespace framework {
|
||||
TEST(Version, Basic) {
|
||||
EXPECT_TRUE(IsProgramVersionSupported(0));
|
||||
EXPECT_FALSE(IsProgramVersionSupported(1));
|
||||
EXPECT_FALSE(IsProgramVersionSupported(-1));
|
||||
|
||||
EXPECT_TRUE(IsTensorVersionSupported(0));
|
||||
EXPECT_FALSE(IsTensorVersionSupported(1));
|
||||
EXPECT_FALSE(IsTensorVersionSupported(-1));
|
||||
}
|
||||
} // namespace framework
|
||||
} // namespace paddle
|
Loading…
Reference in new issue