Repository: pytorch
Issue: aot-compile inference module, update_inactive_constant_buffer function, CUDA memory continues to increase
Labels: triaged,oncall: pt2,module: aotinductor

### 🐛 Describe the bug

python code
``` python
class Net(nn.Module):
    def __init__(self, device="cuda"):
        super(Net, self).__init__()
        self.expert_layer1 = nn.ModuleList([nn.Sequential(OrderedDict([
                                                  ('expert1', nn.Linear(INPUT_SIZE,4200)),
                                                  ('relu', nn.ReLU())
                                                ]))
                                                for _ in range(3)
                                             ])
        ...

module = Net(device).eval().to(device)
module.requires_grad_(False)
dynamic_shapes = {"item_index": {0: item_dim},
                          "item_position": {0: item_dim},
                          "param": {0: param_dim},
                          "usr_emb_one": {},
                          "embeddings": {0: embeddings_dim},}
model_so_path = aot_compile(
            module,
            inputs,
            dynamic_shapes=dynamic_shapes,
            options={"aot_inductor.use_runtime_constant_folding": True})
```

c++ code
``` cpp
auto runner_ = std::make_unique<torch::inductor::AOTIModelContainerRunnerCuda>(model_so_path.c_str());
torch::inductor::TensorConstantMap data;
for(...) {
    torch::NoGradGuard no_grad;
    c10::cuda::set_device(device_id_);
    runner_->update_inactive_constant_buffer(data);
    if (use_runtime_constant_folding_) {
        runner_->run_const_fold(/* use_inactive = */ true);
    }

    runner_->swap_constant_buffer();
    ...
    c10::cuda::CUDACachingAllocator::emptyCache();
}
```

### Error logs

_No response_

### Minified repro

_No response_

### Versions

PyTorch version: 2.3.0a0+git97ff6cf
Is debug build: False
CUDA used to build PyTorch: 12.1
ROCM used to build PyTorch: N/A

OS: Ubuntu 22.04.3 LTS (x86_64)
GCC version: (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0
Clang version: Could not collect
CMake version: version 3.22.1
Libc version: glibc-2.35

Python version: 3.10.12 (main, Nov 20 2023, 15:14:05) [GCC 11.4.0] (64-bit runtime)
Python platform: Linux-3.10.0-1160.25.1.el7.x86_64-x86_64-with-glibc2.35
Is CUDA available: True
CUDA runtime version: 12.1.105
CUDA_MODULE_LOADING set to: LAZY
GPU models and configuration:
GPU 0: Tesla T4
GPU 1: Tesla T4
GPU 2: Tesla T4
GPU 3: Tesla T4

Nvidia driver version: 535.104.05
cuDNN version: Probably one of the following:
/usr/lib/x86_64-linux-gnu/libcudnn.so.8.9.0
/usr/lib/x86_64-linux-gnu/libcudnn_adv_infer.so.8.9.0
/usr/lib/x86_64-linux-gnu/libcudnn_adv_train.so.8.9.0
/usr/lib/x86_64-linux-gnu/libcudnn_cnn_infer.so.8.9.0
/usr/lib/x86_64-linux-gnu/libcudnn_cnn_train.so.8.9.0
/usr/lib/x86_64-linux-gnu/libcudnn_ops_infer.so.8.9.0
/usr/lib/x86_64-linux-gnu/libcudnn_ops_train.so.8.9.0
HIP runtime version: N/A
MIOpen runtime version: N/A
Is XNNPACK available: True

CPU:
Architecture:                    x86_64
CPU op-mode(s):                  32-bit, 64-bit
Address sizes:                   46 bits physical, 48 bits virtual
Byte Order:                      Little Endian
CPU(s):                          32
On-line CPU(s) list:             0-31
Vendor ID:                       GenuineIntel
Model name:                      Intel(R) Xeon(R) Gold 6278C CPU @ 2.60GHz
CPU family:                      6
Model:                           85
Thread(s) per core:              2
Core(s) per socket:              16
Socket(s):                       1
Stepping:                        7
BogoMIPS:                        5200.00
Flags:                           fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx pdpe1gb rdtscp lm constant_tsc rep_good nopl xtopology nonstop_tsc eagerfpu pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch invpcid_single ssbd ibrs ibpb stibp ibrs_enhanced fsgsbase tsc_adjust bmi1 hle avx2 smep bmi2 erms invpcid rtm mpx avx512f avx512dq rdseed adx smap clflushopt clwb avx512cd avx512bw avx512vl xsaveopt xsavec xgetbv1 arat avx512_vnni md_clear spec_ctrl intel_stibp flush_l1d arch_capabilities
Hypervisor vendor:               KVM
Virtualization type:             full
L1d cache:                       512 KiB (16 instances)
L1i cache:                       512 KiB (16 instances)
L2 cache:                        16 MiB (16 instances)
L3 cache:                        35.8 MiB (1 instance)
NUMA node(s):                    1
NUMA node0 CPU(s):               0-31
Vulnerability Itlb multihit:     Processor vulnerable
Vulnerability L1tf:              Not affected
Vulnerability Mds:               Not affected
Vulnerability Meltdown:          Not affected
Vulnerability Spec store bypass: Mitigation; Speculative Store Bypass disabled via prctl and seccomp
Vulnerability Spectre v1:        Mitigation; Load fences, usercopy/swapgs barriers and __user pointer sanitization
Vulnerability Spectre v2:        Vulnerable
Vulnerability Srbds:             Not affected
Vulnerability Tsx async abort:   Mitigation; Clear CPU buffers; SMT Host state unknown

Versions of relevant libraries:
[pip3] numpy==1.26.4
[pip3] optree==0.11.0
[pip3] torch==2.3.0a0+git97ff6cf
[pip3] triton==2.3.0

cc @ezyang @msaroufim @bdhirsh @anijain2305 @chauhang @desertfire @chenyang78