A library for accelerating Transformer models on NVIDIA GPUs, including using 8-bit floating point (FP8) precision on Hopper and Ada GPUs, to provide better performance with lower memory utilization in both training and inference.
It'll probably crash or not because at line 102, the operator= will trigger destructor to delete the old value std::function of _alloc_copy_allgather, which is actually an uninit value.
see also the definition of struct communicator
struct communicator {
...
std::function<void(void **, void *, size_t, ExtComm)> _alloc_copy_allgather; //will not be initialized by malloc
std::function<void(ExtComm)> _barrier; //will not be initialized by malloc
std::function<void(void *)> _free; //will not be initialized by malloc
Container:
Machine:
x86 CPU with A100 node
Reproduce:
It'll probably crash or not because at line 102, the
operator=
will trigger destructor todelete
the old valuestd::function
of_alloc_copy_allgather
, which is actually an uninit value. see also the definition ofstruct communicator
Hope this hint helps the progress.