Beispiel #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));
 }
 public static DisposableCollection<Device> PartitionByAffinityDomain(ClDeviceID device, AffinityDomain affinityDomain)
 {
     IntPtr[] properties = { (IntPtr)PartitionProperty.PartitionByAffinityDomain, (IntPtr)affinityDomain, IntPtr.Zero };
     return CreateSubDevices(device, properties);
 }
Beispiel #3
0
 public static DisposableCollection <Device> PartitionByAffinityDomain(ClDeviceID device, AffinityDomain affinityDomain)
 {
     IntPtr[] properties = { (IntPtr)PartitionProperty.PartitionByAffinityDomain, (IntPtr)affinityDomain, IntPtr.Zero };
     return(CreateSubDevices(device, properties));
 }