Ejemplo n.º 1
0
 /// <summary>
 /// Split the device into smaller aggregate devices containing one or more compute
 /// units that all share part of a cache hierarchy. The value accompanying this
 /// property may be drawn from the following list:
 ///
 /// <list type="bullet">
 /// <item><see cref="AffinityDomain.Numa"/> - Split the device into sub-devices comprised of compute units that share a NUMA node.</item>
 /// <item><see cref="AffinityDomain.L4Cache"/> - Split the device into sub-devices comprised of compute units that share a level 4 data cache.</item>
 /// <item><see cref="AffinityDomain.L3Cache"/> - Split the device into sub-devices comprised of compute units that share a level 3 data cache.</item>
 /// <item><see cref="AffinityDomain.L2Cache"/> - Split the device into sub-devices comprised of compute units that share a level 2 data cache.</item>
 /// <item><see cref="AffinityDomain.L1Cache"/> - Split the device into sub-devices comprised of compute units that share a level 1 data cache.</item>
 /// <item><see cref="AffinityDomain.NextPartitionable"/> - Split the device along the next partitionable affinity domain. The implementation shall find the first level along which the device or sub-device may be further subdivided in the order NUMA, L4, L3, L2, L1, and partition the device into sub-devices comprised of compute units that share memory subsystems at this level.</item>
 /// </list>
 ///
 /// The user may determine what happened by checking <see cref="PartitionType"/> on the sub-devices.
 /// </summary>
 /// <param name="affinityDomain">Specifies the cache hierarchy shared by the partitioned compute units.</param>
 /// <returns>A collection of sub-devices representing the created partitions.</returns>
 public DisposableCollection <Device> PartitionByAffinityDomain(AffinityDomain affinityDomain)
 {
     return(UnsafeNativeMethods.PartitionByAffinityDomain(ID, affinityDomain));
 }