IP Library › Granted Patent US 12,732,393
Granted Patent B2
US 12,732,393 · App. 17/734,812 · Granted Sep 8, 2026

Multicast communication arbitration

Inventors: Srijith Haridas (Bangalore, IN); Govendra Gupta (Bangalore, IN)
Assignee: NVIDIA Corporation
H04L12/1881H04L12/1877
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,732,393
App. No.
17/734,812
Granted
Sep 8, 2026
Kind
B2
Abstract

Apparatuses, systems, and techniques to perform multicast data transmissions in parallel. In at least one embodiment, a plurality of pending multicast data transmissions are analyzed to select a subset of multicast transmissions that can be performed in parallel. In at least one embodiment, the selection is made by prioritizing senders using a rotating priority scheme.

Claims (48)

1 . A system comprising: one or more circuits to:

identify, in accordance with priorities of sources associated with a plurality of multicast transmissions, multicast transmissions able to be performed concurrently by successively adding, individual multicast transmissions, from the plurality of multicast transmissions, to a set of multicast transmissions as a result of determining that the individual multicast transmissions do not have conflicting destinations with any multicast transmission already in the set of multicast transmissions; and

perform the set of multicast transmissions at least partly concurrently.

2 . The system of claim 1 , wherein the one or more circuits are to determine the priorities of the sources.

3 . The system of claim 1 , wherein the priorities of the sources define a priority order that is to be rotated and applied to a next plurality of multicast transmissions.

4 . The system of claim 1 , wherein the priorities of the sources define a priority order used to identify the multicast transmissions able to be performed concurrently, and a different priority order is to be applied to a next plurality of multicast transmissions.

5 . The system of claim 1 , wherein the priorities of the sources are determined in order of least-recently-used sources.

6 . The system of claim 1 , wherein the one or more circuits are to further:

determine a second set of multicast transmissions to be performed concurrently in accordance with a priority order different from a priority order corresponding to the priorities of the sources; and

perform the second set of multicast transmissions.

7 . The system of claim 1 , wherein the set of multicast transmissions are to be performed concurrently in a network in an integrated circuit.

8 . The system of claim 1 , wherein the individual multicast transmissions of the plurality of multicast transmissions each comprise one or more parameters of a machine-learned model on which multiple concurrent threads are to operate.

9 . The system of claim 1 , wherein the one or more circuits are to further:

split at least one multicast transmission of the plurality of multicast transmissions into a first multicast transmission having a first set of destinations, and a second multicast transmission having a second set of destinations, the first set of destinations having no destinations in common with the second set of destinations;

add the first multicast transmission to the set of multicast transmissions to be performed concurrently; and

add the second multicast transmission to a future set of multicast transmissions to be performed concurrently.

10 . A computer-implemented method, comprising:

identifying, in accordance with priorities of sources associated with a plurality of multicast transmissions, multicast transmissions able to be performed concurrently by successively adding, individual multicast transmissions, from the plurality of multicast transmissions, to a set of multicast transmissions as a result of determining that the individual multicast transmissions do not have conflicting destinations with any multicast transmission already in the set of multicast transmissions; and

performing the set of multicast transmissions at least partly concurrently.

11 . The computer-implemented method of claim 10 , further comprising: determining the priorities of the sources for the plurality of multicast transmissions.

12 . The computer-implemented method of claim 10 , wherein the priorities of the sources define a priority order that is to be rotated and applied to a next plurality of multicast transmissions.

13 . The computer-implemented method of claim 10 , wherein and the priorities of the sources define a priority order used to identify the multicast transmissions able to be performed concurrently, and a different priority order is to be applied to a next plurality of multicast transmissions.

14 . The computer-implemented method of claim 10 , wherein the priorities of the sources are determined in order of least-recently-used sources.

15 . The computer-implemented method of claim 10 , further comprising:

identifying a second set of multicast transmissions to be performed concurrently in accordance with an order of priority that is different from an order of priority defined by the priorities of the sources; and

performing the second set of multicast transmissions.

16 . The computer-implemented method of claim 10 , wherein the set of multicast transmissions are to be performed concurrently in a communication network comprising a network in an integrated circuit.

17 . The computer-implemented method of claim 10 , wherein the individual multicast transmissions of the plurality of multicast transmissions each comprise one or more parameters of a machine-learned model and multiple concurrent threads are to operate on the one or more parameters.

18 . The computer-implemented method of claim 10 , further comprising:

splitting at least one multicast transmission of the plurality of multicast transmissions into a first multicast transmission having a first set of destinations, and a second multicast transmission having a second set of destinations, the first set of destinations having no destinations in common with the second set of destinations;

adding the first multicast transmission to the set of multicast transmissions to be performed concurrently; and

adding the second multicast transmission to a future set of multicast transmissions to be performed concurrently.

19 . Non-transitory computer-readable memory storing executable instructions that, as a result of being executed by one or more processors of a computer system, cause the computer system to:

identify, in accordance with priorities of sources associated with a plurality of multicast transmissions, multicast transmissions able to be performed concurrently by successively adding, individual multicast transmissions, from the plurality of multicast transmissions, to a set of multicast transmissions as a result of determining that the individual multicast transmissions do not have conflicting destinations with any multicast transmission already in the set of multicast transmissions; and

perform the set of multicast transmissions at least partly concurrently.

20 . The non-transitory computer-readable memory of claim 19 , wherein the executable instructions, if executed by the one or more processors, cause the computer system to further determine the priorities of the sources.

21 . The non-transitory computer-readable memory of claim 19 , wherein the priorities of the sources defines a priority order that is to be rotated and applied to a next plurality of multicast transmissions.

22 . The non-transitory computer-readable memory of claim 19 , wherein the priorities of the sources define a priority order used to identify the multicast transmissions able to be performed concurrently, and a different priority order is to be applied to a next plurality of multicast transmissions.

23 . The non-transitory computer-readable memory of claim 19 , wherein the priorities of the sources are determined in order of least-recently-used sources.

24 . The non-transitory computer-readable memory of claim 19 , wherein the executable instructions, if executed by the one or more processors, cause the computer system to further:

identify a second set of multicast transmissions to be performed concurrently from the plurality of multicast transmissions in accordance with an order of priority that is different from an order of priority defined by the priorities of the sources; and

perform the second set of multicast transmissions.

25 . The non-transitory computer-readable memory of claim 19 , wherein the set of multicast transmissions are performed concurrently in a communication network that is a network in an integrated circuit.

26 . The non-transitory computer-readable memory of claim 19 , wherein the individual multicast transmissions of the plurality of multicast transmissions each comprise one or more parameters of a machine-learned model and multiple concurrent threads are to operate on the one or more parameters.

27 . The non-transitory computer-readable memory of claim 19 , wherein the executable instructions cause the computer system to further:

split at least one multicast transmission of the plurality of multicast transmissions into a first multicast transmission having a first set of destinations, and a second multicast transmission having a second set of destinations, the first set of destinations having no destinations in common with the second set of destinations;

add the first multicast transmission to the set of multicast transmissions to be performed concurrently; and

add the second multicast transmission to a future set of multicast transmissions to be performed concurrently.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 2, 2022
From: HARIDAS, SRIJITH; GUPTA, GOVENDRA
To: NVIDIA CORPORATION
Reel/Frame 059784/0827 →
Priority Claims (1)
IN 202211013863 · Mar 14, 2022 · national
Continuity (1)
Related Publication 20230318865A1 · Oct 5, 2023
References Cited (12)
US 6628646B1 · Angle · 2003 [cited by examiner]
US 20080298336A1 · Gollamudi · 2008 [cited by examiner]
US 20090124196A1 · Moon · 2009 [cited by examiner]
US 20140250456A1 · Ramkumar · 2014 [cited by examiner]
US 20150319472A1 · Kotecha · 2015 [cited by examiner]
US 20170180951A1 · Lee · 2017 [cited by examiner]
US 20170303157A1 · Siomina · 2017 [cited by examiner]
US 20180352305A1 · Bowen · 2018 [cited by examiner]
US 20200204384A1 · Esbensen · 2020 [cited by examiner]
US 20210392466A1 · Liu · 2021 [cited by examiner]
US 20230247401A1 · Yu · 2023 [cited by examiner]
IEEE, “IEEE Standard 754-2008 (Revision of IEEE Standard 754-1985): IEEE Standard for Floating-Point Arithmetic,” Aug. 29, 2008, 70 pages. [cited by applicant]