-
Notifications
You must be signed in to change notification settings - Fork 532
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Enable cache line locking support in SSD kernel #2949
Conversation
✅ Deploy Preview for pytorch-fbgemm-docs ready!
To edit notification comments on pull requests, go to your Netlify site configuration. |
This pull request was exported from Phabricator. Differential Revision: D60812956 |
This pull request was exported from Phabricator. Differential Revision: D60812956 |
Summary: X-link: facebookresearch/FBGEMM#51 Pull Request resolved: pytorch#2949 This diff enables cache line locking in `ssd_cache_actions_insert_kernel`. We updated the cache slot cost computation (within a cache set) to facilitate the cache line locking logic. Before this diff, the cache slots are ranked based on the their costs (i.e., their timestamps which can be retrieved from the cache state). The cache slots that contain the lowest costs (lowest timestamps) will be evicted first. However, when cache line locking is enabled, the cache slot that has the lowest timestamp cannot be used if it is locked. Therefore, we assign unavailable cache slots (i.e., being locked or being occupied by another index in the same batch) with the highest cost (that is the current timestamp). The slot will not be evicted if its cost is the same as the current timestamp. Differential Revision: D60812956
This pull request was exported from Phabricator. Differential Revision: D60812956 |
Summary: X-link: facebookresearch/FBGEMM#51 Pull Request resolved: pytorch#2949 This diff enables cache line locking in `ssd_cache_actions_insert_kernel`. We updated the cache slot cost computation (within a cache set) to facilitate the cache line locking logic. Before this diff, the cache slots are ranked based on the their costs (i.e., their timestamps which can be retrieved from the cache state). The cache slots that contain the lowest costs (lowest timestamps) will be evicted first. However, when cache line locking is enabled, the cache slot that has the lowest timestamp cannot be used if it is locked. Therefore, we assign unavailable cache slots (i.e., being locked or being occupied by another index in the same batch) with the highest cost (that is the current timestamp). The slot will not be evicted if its cost is the same as the current timestamp. Differential Revision: D60812956
Differential Revision: D60413116
Summary: X-link: facebookresearch/FBGEMM#51 Pull Request resolved: pytorch#2949 This diff enables cache line locking in `ssd_cache_actions_insert_kernel`. We updated the cache slot cost computation (within a cache set) to facilitate the cache line locking logic. Before this diff, the cache slots are ranked based on the their costs (i.e., their timestamps which can be retrieved from the cache state). The cache slots that contain the lowest costs (lowest timestamps) will be evicted first. However, when cache line locking is enabled, the cache slot that has the lowest timestamp cannot be used if it is locked. Therefore, we assign unavailable cache slots (i.e., being locked or being occupied by another index in the same batch) with the highest cost (that is the current timestamp). The slot will not be evicted if its cost is the same as the current timestamp. Reviewed By: ehsanardestani Differential Revision: D60812956
This pull request was exported from Phabricator. Differential Revision: D60812956 |
253d276
to
e0fb4d4
Compare
This pull request has been merged in 19990d8. |
Summary:
This diff enables cache line locking in
ssd_cache_actions_insert_kernel
.We updated the cache slot cost computation (within a cache set) to
facilitate the cache line locking logic. Before this diff, the cache
slots are ranked based on the their costs (i.e., their timestamps
which can be retrieved from the cache state). The cache slots that
contain the lowest costs (lowest timestamps) will be evicted first.
However, when cache line locking is enabled, the cache slot that has
the lowest timestamp cannot be used if it is locked. Therefore, we
assign unavailable cache slots (i.e., being locked or being occupied
by another index in the same batch) with the highest cost (that is the
current timestamp). The slot will not be evicted if its cost is the
same as the current timestamp.
Differential Revision: D60812956