Skip to content

Commit 8111313

Browse files
committed
Add patch for test_dataloader
1 parent a4e04e5 commit 8111313

File tree

2 files changed

+51
-0
lines changed

2 files changed

+51
-0
lines changed

easybuild/easyconfigs/p/PyTorch/PyTorch-1.6.0-fosscuda-2019b-Python-3.7.4.eb

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -202,6 +202,7 @@ patches = [
202202
'%(name)s-1.4.0_fix-system-pybind11.patch',
203203
'%(name)s-1.6.0_fix-missing-source-dir.patch',
204204
'%(name)s-1.6.0_fix-test-cuda.patch',
205+
'%(name)s-1.6.0_fix-test-dataloader-fixed-affinity.patch',
205206
'%(name)s-1.6.0_fix-test-tensorexpr.patch',
206207
'%(name)s-1.6.0_fix-test-missing-rpc-shutdown.patch',
207208
'%(name)s-1.6.0_fix-rpc-test-world-size.patch',
@@ -245,6 +246,8 @@ checksums = [
245246
'1c9f36f959ea5d7cf0d4ca678ec6bf60ef9ed16c556f97197aa018c7b1e5e21d', # PyTorch-1.4.0_fix-system-pybind11.patch
246247
'f3725477d554800a19a8d7f4ab300ab7b70da76b62328081c0ed1f8517c6a61c', # PyTorch-1.6.0_fix-missing-source-dir.patch
247248
'adf21e77dbc5e60fd46fe21fceb908633b0da7d4fc9b6a3ea7f7cfb0c4a44678', # PyTorch-1.6.0_fix-test-cuda.patch
249+
# PyTorch-1.6.0_fix-test-dataloader-fixed-affinity.patch
250+
'a4208a46cd2098744daaba96cebb96cd91166f8fc616924315e05974bad80c67',
248251
'37c19e286f4090115bc67989e537241f2988041ef5c3ff6d02d8c736d8703090', # PyTorch-1.6.0_fix-test-tensorexpr.patch
249252
# PyTorch-1.6.0_fix-test-missing-rpc-shutdown.patch
250253
'9afd9b3a85a7b115e9535cf6a618d5dd137a69a5f36747d6290ac3bf123ab896',
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
From c7c7460fd3a49a9d289394b80d9ecf61898edf49 Mon Sep 17 00:00:00 2001
2+
From: Alexander Grund <[email protected]>
3+
Date: Wed, 9 Sep 2020 08:47:03 +0200
4+
Subject: [PATCH] Choose test affinity based on current affinity
5+
6+
---
7+
test/test_dataloader.py | 18 ++++++++++++------
8+
1 file changed, 12 insertions(+), 6 deletions(-)
9+
10+
diff --git a/test/test_dataloader.py b/test/test_dataloader.py
11+
index ca0c9e6cb511f..745942bcf01f2 100644
12+
--- a/test/test_dataloader.py
13+
+++ b/test/test_dataloader.py
14+
@@ -2128,22 +2128,28 @@ def __iter__(self):
15+
after = os.sched_getaffinity(0)
16+
return iter(after)
17+
18+
-
19+
-def worker_set_affinity(_):
20+
- os.sched_setaffinity(0, [2])
21+
-
22+
-
23+
@unittest.skipIf(
24+
not hasattr(os, 'sched_setaffinity'),
25+
"os.sched_setaffinity is not available")
26+
class TestSetAffinity(TestCase):
27+
def test_set_affinity_in_worker_init(self):
28+
+ # Query the current affinity mask to avoid setting a disallowed one
29+
+ old_affinity = os.sched_getaffinity(0)
30+
+ if not old_affinity:
31+
+ self.skipTest("No affinity information")
32+
+ # Choose any
33+
+ expected_affinity = list(old_affinity)[-1]
34+
+
35+
+ def worker_set_affinity(_):
36+
+ os.sched_setaffinity(0, [expected_affinity])
37+
+
38+
+
39+
dataset = SetAffinityDataset()
40+
41+
dataloader = torch.utils.data.DataLoader(
42+
dataset, num_workers=2, worker_init_fn=worker_set_affinity)
43+
for sample in dataloader:
44+
- self.assertEqual(sample, [2])
45+
+ self.assertEqual(sample, [expected_affinity])
46+
47+
48+

0 commit comments

Comments
 (0)