Spotlight
CUDA 11.4のサポート開始とCUDA 10.2のサポート終了
Neural Network Libraries v1.30.0から、CUDA 11.4に対応しました。
対応するpythonパッケージは https://pypi.org/project/nnabla-ext-cuda114 をご参照ください。
加えて、OpenMPI 4.1.3とCUDA11.4に対応したnnablaを同梱したマルチGPU環境用のdockerイメージも公開しました。詳細は、https://hub.docker.com/r/nnabla/nnabla-ext-cuda-multi-gpu/tags をご参照ください。
また、本バージョンをもってCUDA 10.2のサポートを終了しました。
CUDA/cuDNNを同梱したwheelの公開 (CPU / GPU)
LinuxとWindows両方の環境向けに、CUDAとcuDNNを同梱したwheelパッケージを公開します(alllibと名前が付いたパッケージとなります)。
デフォルトでは、CUDA 11.0.3とcuDNN 8が同梱されます。
このパッケージを利用することで、コンピュータにCUDA toolkitやcuDNNをインストールせずに、GPUを利用することができます。
なお、GPU driverについては同梱ライブラリが要求するバージョンより新しいものがインストールされている必要がありますので、注意してください。
multi-GPU対応のパッケージを利用する際には、追加でOpenMPIのみご自身でインストールしていただく必要があります。NCCLはCUDA toolkitと同様に同梱されておりますのでインストールする必要はありません。
pip install -U pip
pip install https://nnabla.org/whl/nnabla_ext_cuda_alllib/nnabla_ext_cuda_alllib-1.30.0-cp39-cp39-manylinux_2_17_x86_64.whl
上記以外のwheelについては https://nnabla.org/ja/install/#all-in-one_list をご確認ください。
cuTensorを用いたTransposeのCuda実装の高速化
CudaでのTranspose
において、特に内側2次元の転置のケース(transpose(..., axis=(0, 1, 3, 2))など
)の高速化のために、cuTensorを用いた実装を追加しました。
具体的なユースケースでは、例えば、channel last
レイアウトからchannel first
レイアウト(およびその逆)への変換時に利用されるtranspose
などが今までよりも高速に動作するようになりました。
cuDNNのエラーメッセージの改善
cuDNNのエラーが発生した際に、出力するエラーメッセージを改善しました。これまでと比較して、コード内のエラー箇所をわかりやすく表示することに加え、エラーに関連するcuDNN API guide内の該当箇所が見つけやすくなるようにしました。
Before:
RuntimeError: target_specific error in cudnn_set_tensor_nd_descriptor_force_dim
/home/gitlab-runner/builds/jmdP2aBr/1/nnabla/builders/all/nnabla-ext-cuda/src/nbla/cuda/cudnn/cudnn.cpp:40
Failed `status == CUDNN_STATUS_SUCCESS`: NOT_SUPPORTED
After:
Caught exception "target_specific error in TestBody
nnabla-ext-cuda/src/nbla/cuda/test/test_nbla_cuda_utils.cpp:26
CUDNN_STATUS_ALLOC_FAILED occured in `FakeCudnnFunc()`. Please see CUDNN API documentation for the cause.
[Fairness] Prejudice Remover Regularizer (part1 / part2)
機械学習におけるデータバイアスを低減することができる、Prejudice Remover Regularizerをexampleに追加しました。表データ版の他に画像版もあります。
Colabによるチュートリアルも公開しておりますので、是非ご活用ください。
Name | Notebook | Task | Example |
---|---|---|---|
Prejudice Remover Regularizer | Mitigate the model bias with Prejudice Removal Technique | ||
Prejudice Remover Regularizer for Images | Mitigate the model bias with Prejudice Removal Technique for Images |
CLIPの学習コードの公開
CLIPの学習コードを追加しました。mutli-GPUに対応しており、巨大なバッチサイズが必要な対照学習を分散計算することが可能です。
nnabla
Bugfix
- fix training attribute problem of module
- Fix QNN recorder zero check
- Fix QNN param exists check
- fix proto to info.proto in load.py
- disable dl_nccl_generate when nccl_disabled
- Update nvidia/cuda base image
- Set to use openib by default
- fix crash for coding error in concatenate
- CenterNet code cleanup
- [XAI] update eigencam notebook
- [XAI ]resolve conflict
Build
- Integrate flatc to converter
- Skip FFT/IFFT pytests for win32+CUDA114
- Update scipy I/F from 1.9.x
- allow selection of python to be used when running build_cpplib.bat
- Add benchmark for F.transpose()
- add empty targz and merge cuda wheel
- Fix CUDA_VERSION_MINOR to various condition
- remove flatc build from Dockerfile
Format Converter
- add shape() function and importer
- Implementation of onnx import of quantize resize scatter compress shape
- add onnx exporter groupnormalization
- pack flatc binary files for windows/linux/mac into python wheel
- update version dependency of file format converter
Examples
- [Fairness] Prejudice Remover Regularizer for images (part2)
- [Fairness] Rejection Option-based classification on image data(part2)
- Add conditional adm examples
Known Issues
NNabla-NAS
Bugfix
- Bug fixes of OFA(Once-for-All) and add tutorials for OFA
- Fixed missing regularizer arguments
- Bug fixes of OFA DynamicBN layer
- Add proper extra_repr to all OFA modules.
- Bug fixes and refactoring of OFA utilities
- Fix parameters not being inherited.
- Fixed OFA searcher to get correct net parameters with keys
- fixed jobs.sh
- Update imagenet.yaml
- f-string compatibility with Python version < 3.8
- Fix mismatching order of params of AvgPool
Build
Core
- Add the functions to save checkpoint and restart from it
- Get regulizers out of the optimizers dictionary.
- Extract elastic-nn-related codes to common packages for better code reuse
- Support nnabla.no_grad etc.
- Implementation of mixed operations fast mode
- Add OFA-Xception search space
- Add OFA-ResNet50
Documentation
- [OFA] Update Model Zoo README with results on imagenet
- updated docs, readme and tutorials and gave timestamps to the config logs
Utility
- save arch.json when save-nnp option is specified.
- add image augmentation for csv dataloader
- add no_image_normalization param in executor when saving nnp
- Update DALI Pipeline to the latest version for the ImageNet dataset
- Enable save nnp function for OFA searcher
- Switch to hydra to handle configurations