cuNVSM comes with a test harness to verify its implementation. Here we give a brief overview of the tests:
- cuda_utils_tests verifies the implementation of custom CUDA kernels and transformation functions (e.g.,
truncated_sigmoid
). Note that most CUDA-related functionality is tested by the device_matrix library. - cudnn_utils_tests tests the integration of cuDNN within cuNVSM and, in particular, batch normalization.
- data_tests checks whether all the data loading works properly. For example, it contains tests that verify the integration with Indri.
- gradient_checking_tests provides automated tests, using numerical differentiation, that verify whether the forward and backward passes are correctly implemented. If a change to the loss functions is made, the consistency can be verified using this module.
- intermediate_results_tests provides shallow tests for verifying the correct workings of internal cuNVSM data structures.
- model_tests is a mixed bag of tests that verify the interface to the
Model
class. - updates_tests verifies the implementation of parameter update methods (e.g., Adam).
- utils_tests contains a few short tests that verify auxiliary functions.