Download testing/device_delete.cu from camenduru/thrust: direct link, hf CLI and curl.
- Browser
- Download file 1.05 kB
-
https://huggingface.co/camenduru/thrust/resolve/main/testing/device_delete.cu
- Command line
-
hf download hf://camenduru/thrust/testing/device_delete.cu
-
curl -L -o device_delete.cu https://huggingface.co/camenduru/thrust/resolve/main/testing/device_delete.cu
1.05 kB
| struct Foo | |
| { | |
| __host__ __device__ | |
| Foo(void) | |
| : set_me_upon_destruction{nullptr} | |
| {} | |
| __host__ __device__ | |
| ~Foo(void) | |
| { | |
| NV_IF_TARGET(NV_IS_DEVICE, ( | |
| if (set_me_upon_destruction != nullptr) | |
| { | |
| *set_me_upon_destruction = true; | |
| })); | |
| } | |
| bool *set_me_upon_destruction; | |
| }; | |
| void TestDeviceDeleteDestructorInvocation(void) | |
| { | |
| KNOWN_FAILURE; | |
| // | |
| // thrust::device_vector<bool> destructor_flag(1, false); | |
| // | |
| // thrust::device_ptr<Foo> foo_ptr = thrust::device_new<Foo>(); | |
| // | |
| // Foo exemplar; | |
| // exemplar.set_me_upon_destruction = thrust::raw_pointer_cast(&destructor_flag[0]); | |
| // *foo_ptr = exemplar; | |
| // | |
| // ASSERT_EQUAL(false, destructor_flag[0]); | |
| // | |
| // thrust::device_delete(foo_ptr); | |
| // | |
| // ASSERT_EQUAL(true, destructor_flag[0]); | |
| } | |
| DECLARE_UNITTEST(TestDeviceDeleteDestructorInvocation); | |