Skip to content

v7.0.0

Compare
Choose a tag to compare
@emcastillo emcastillo released this 05 Dec 05:44
· 258 commits to master since this release
eb8dee8

This is the release note of v7.0.0. See here for the complete list of solved issues and merged PRs.

This release note only covers the difference from v7.0.0rc1; for all highlights and changes, please refer to the release notes of the pre-releases:

See the Upgrade Guide if you are upgrading from previous versions. Also, note that we dropped the support of Python 2.7 and 3.4 from Chainer v7.

Please read the following announcement to learn about the future of Chainer.

Highlights

  • Most features of Chainer, including ChainerMN, are now compatible with ChainerX ndarray.
  • ONNX-Chainer is integrated into Chainer.
  • NHWC support added. Performance for convolutions and batch normalization greatly improved on GPUs with Tensor Core.

Changes without compatibility

  • Forbid out-of-range insert on Sequence (#6374)
  • Update minimum required python version to 3.5.2 (#8410)

New Features

  • Support soft target in softmax_cross_entropy (#5595, thanks @anaruse!)
  • Support NHWC tensor layout (#7620)
  • Add Cholesky Decompostion (#8202, thanks @UmashankarTriforce!)
  • Allow customizing setup/tear-down method names in testing.fix_random (#8432)

Enhancements

  • Use intermediate dtype in F.mean_absolute_error for FP16 (#6807)
  • Avoid fallback for ChainerX in F.accuracy (#7396)
  • Add from_params to Linear & Conv (#7525, thanks @crcrpar!)
  • Correct FunctionNode.forward output type message (#7655)
  • Default index mode for ChainerX Take (#8281)
  • Forward chainerx::MakeArray in some case (#8296)
  • Raise ValueError when calling xxx_obj with ChainerX array in ChainerMN (#8320)
  • Add Permutate exporter to onnx_chainer (#8333, thanks @msakai!)
  • Update ONNX version (#8339)
  • Support ONNX export with opset11 (#8341)
  • Support multiple advanced indexing on ONNX export (#8345)
  • Revert output value check in SoftmaxCrossEntropy (#8347)
  • Enhance chainerx::AddAt as a public function (#8351)
  • Support cover_all=True on Unpooling2D in exporting to ONNX (#8391)
  • Use ceiling_mode on exporting to ONNX MaxPool (#8392)
  • Fix onnx_chainer.replace_func.fake_as_funcnode to reconstruct return value structure (#8398, thanks @msakai!)
  • Support Rollaxis in ONNX-Chainer (#8428, thanks @tkanmae!)
  • Add support of SelectItem in ONNX-Chainer (#8450, thanks @tkanmae!)
  • Add TransposeSequence exporter to ONNX-Chainer (#8451, thanks @msakai!)
  • Use __name__ attribute in parameterized test names when available (#8455, thanks @grlee77!)
  • SelectItem using GatherElements for ONNX opset>=11 (#8470)
  • Add deprecation warning to ONNX exporting without test cases (#8473)
  • Add workaround for cuSolver 10.2's new enums (#8475)
  • Support step slicing on ONNX export (#8484)
  • Support sign function on exporting ONNX (#8488)
  • Raise RuntimeError when using cudnn_fast without cudnn (#8499)

Performance Improvements

  • Make contiguous case for chainerx::AddAt faster (#8299)

Bug Fixes

  • Fix 'attempting to reference a deleted function' with MSVC (#8258, thanks @cloudhan!)
  • Fix onnx_chainer's exporter of Separate to handle single output case (#8332, thanks @msakai!)
  • Fix ChainerX fallback condition in batch normalization (#8359)
  • Remove host-side branch on F.accuracy with ignore_label (#8364, thanks @y1r!)
  • Fix rounding on float16 conversions (#8378)
  • Avoid overflow on index calculations when using large arrays (#8389)
  • Fix pickling of optimizers (#8394)
  • Fix AttributeError in WrappedFunctionNode.forward (#8397, thanks @msakai!)
  • Register uninitialized persistents (#8445)
  • Fix ONNX-Chainer's GetItem converter to handle -1 correctly (#8460, thanks @msakai!)
  • Support chainerx.batch_norm with 2D input on CUDA (#8464)
  • Fix BatchNormalization for NHWC without cudnn (#8497)

Code Fixes

  • Code clean up for routines/indexing.h (#8288)
  • Fix style in _snapshot.py (#8297)
  • C++ cosmetic fixes (#8379)
  • Avoid using VariableNode in F.convolution_2d backward implementation (#8395)
  • Add unsigned suffix in float16 test (#8408)
  • Remove unused function (#8413)
  • Add unsigned integer suffix (#8414)
  • Avoid repeatedly enumerating submodules (#8421)
  • Fix ChainerX CMake test dependencies (#8422)
  • Avoid preprocessor for LAPACK error (#8468)

Documentation

  • Fix for issue #6251 and issue #6810 (#6808, thanks @euler16!)
  • Document properties of computed gradients in cholesky and eigh (#8312)
  • Fix n-step RNN docs (#8326, thanks @euler16)
  • Fix documentation of NStepGRUBase (#8330, thanks @msakai!)
  • Fix typos in ONNX-Chainer introduction (#8334, thanks @msakai!)
  • Fix docs of ONNX export introduction (#8338)
  • Fix typo in /examples/seq2seq/README.md (#8399, thanks @tanaken0515!)
  • Link to examples directory for the current branch (#8403)
  • Fix scatter_dataset part of ChainerMN tutorial (#8406)
  • Update expected messages of type_check errors (#8407)
  • Fix typo in math expressions (#8433)
  • Update requirements (#8501)

Installation

  • Allow multiple code in CHAINERX_NVCC_GENERATE_CODE (#8370)
  • Fix CMake target name for abseil (#8380)
  • Remove typing requirement (#8383, thanks @jonringer!)
  • Update minimum required python version to 3.5.2 (#8410)
  • Use PYBIND11_EXPORT instead of visibility hack (#8437)
  • Ignore unused function warning in NVCC (#8439)
  • Fix code grouping in CMakeLists.txt (#8440)

Examples

  • Add MNIST MultiprocessParallelUpdater example (#7478)
  • Use ChainerX softmax cross entropy implementation in ChainerX examples (#8294)

Tests

  • Forbid out-of-range insert on Sequence (#6374)
  • Check output in example tests (#7280)
  • Show pytest summary in flexCI (#8212)
  • Run example tests in Travis CI (#8251)
  • Fix Decorrelated Batch Normalization tests (#8260)
  • Build ChainerX example in CI (#8282)
  • Fix test_Meshgrid (#8285)
  • Add ChainerX pytest in multi_node_early_stopping (#8321)
  • Fix inputs of pooling function tests (#8328)
  • Include .git in ChainerCV compatibility CI (#8331)
  • Adjust SoftmaxCrossEntropy test tolerances (#8335)
  • Fix random condition in chainerx.where test (#8342)
  • Use LinkTestCase for L.GroupNormalization (#8343)
  • Relax tolerances of ChainerX linalg forward tests (#8344)
  • Add chainerx test to dataset_tests (#8346)
  • Print installed packages in pytest (#8348)
  • Reduce shape in ChainerX linalg test (#8349)
  • Use different docker image for each base development branch (#8350)
  • Set CHAINER_CI in Travis CI (#8353)
  • Set CHAINER_CI in ChainerX tests in Jenkins (#8354)
  • Set CHAINER_CI in Chainer tests in FlexCI (#8356)
  • Use xpytest to parallelize tests (#8361)
  • Relax float16 forward tolerance of F.cast test (#8363)
  • Print actual array values in FunctionTest modified input error (#8367)
  • Fix negative tests for chainerx.linalg.* (#8371)
  • Avoid non-differential point in TestTriplet (#8376)
  • Check ONNX Chainer python styles (#8400)
  • Change version of python in travis macos test (#8405)
  • Remove chainerx dependency from test backends (#8409)
  • Add ChainerX test to test_allreduce_persistent.py (#8412)
  • Use fix_random in xfail backward tests (#8419)
  • Fix TestMeshgrid (#8420)
  • Add ChainerMN and ONNX-chainer tests to Mergify requirements (#8424)
  • Add chainerx tests to test_checkpoint.py (#8429)
  • Fix random in ChainerX n-step GRU test (#8431)
  • Add chainerx tests to test_create_mnbn_model (#8435)
  • Add chainerx tests into multi_node_optimizer (#8436)
  • Annotate tests that usually run >30s (#8443)
  • Lookup macOS undefined symbols at runtime in backend tests (#8448)
  • Skip some Convolution2D tests for older numpy versions (#8458)
  • Add parametrize_device_name to setup.cfg (#8459)
  • Fix conflict between #8251 and #8361 (#8461)
  • Fix example test data (#8463)
  • Enable verbose flag when installing chainer in Jenkins (#8467)
  • Remove ChainerX F.cholesky test (#8469)
  • Ignore cupy.util.PerformanceWarning in pytest (#8471)
  • Avoid ChainerX slow tests in Jenkins (#8472)
  • Fix flaky test of _modified_xlogx (#8483)
  • Fix broken version specification in FlexCI dockerfile (#8485)
  • Remove unnecessary export on ONNX replace function test (#8487)
  • Allow array_utils.uniform to be deterministic with fix_random by default (#8491)
  • Add error message for invalid base branch in pfnCI (#8496)
  • Adjust timeout and build memory usage in FlexCI (#8498)