Windows specific stall when generating point clouds - localized it to `parallel_datamanager`
Closed this issue · 0 comments
AruniRC commented
I'm running into a stall when generating point clouds from a trained nerf on Windows (same setup generates point clouds perfectly on Linux).
I narrowed it down to the parallel_datamanager.py
:
def setup_train(self):
"""Sets up parallel python data processes for training."""
assert self.train_dataset is not None
self.train_pixel_sampler = self._get_pixel_sampler(self.train_dataset, self.config.train_num_rays_per_batch) # type: ignore
self.data_queue = mp.Queue(maxsize=self.config.queue_size) # type: ignore
self.data_procs = [
DataProcessor(
out_queue=self.data_queue, # type: ignore
config=self.config,
dataparser_outputs=self.train_dataparser_outputs,
dataset=self.train_dataset,
pixel_sampler=self.train_pixel_sampler,
)
for i in range(self.config.num_processes)
]
# REACHES HERE
for proc in self.data_procs:
proc.start() # STALLED
print("Started threads")
The code hits these lines, and then there is no progress. I checked that the num_processes
is 1, and the DataProcessor
class objects are being instantiated as expected. However, the DataProcessor.run()
is never reached, which I think would be called if the queue in data_proc
.
Has anyone encountered this when trying it out on Windows? Any known workarounds maybe?