The Core 1.0 Feature Level is a subset of the full Direct3D 12 feature set. Core 1.0 Feature Level can be exposed by a category of devices known as compute-only devices. The overall driver model for compute-only devices is the Microsoft Compute Driver Model (MCDM). MCDM is a scaled-down peer of the Windows Device Driver Model (WDDM), which has a larger scope.
A device that supports only the features within a Core Feature Level is known as a Core device.
Megjegyzés
Compute-only device, MCDM device, Core Feature Level device, and Core device all mean the same thing. We'll prefer Core device for simplicity.
Creating a Core device
In general, to create a Direct3D 12 device, you call the D3D12CreateDevice function, and specify a minimum feature level.
If you specify a feature level of 9 through 12, then the device that's returned is a feature-rich device, such as a traditional GPU (which supports a superset of the functionality of a Core device). A Core device is never returned for that range of feature levels.
On the other hand, if you specify a Core feature level (for example, D3D_FEATURE_LEVEL::D3D_FEATURE_LEVEL_1_0_CORE), then the device that's returned could be feature-rich, or it could be a Core device.
If you specify a _CORE feature level, then the runtime/debug layer validates that the features your application uses are allowed by that _CORE feature level. That set of features is defined later in this topic.
Shader model for Core devices
A Core device supports Shader Model 5.0+.
The runtime performs conversion of 5.x non DXIL shader models to 6.0 DXIL. So the driver need only support 6.x.
Resource management model for Core devices
Supported resource dimensions: raw and structured buffers only (no typed buffers, texture1d/2D, etc.)
No support for reserved (tiled) resources
No support for custom heaps
No support for any of these heap flags:
D3D12_HEAP_FLAG_HARDWARE_PROTECTED
D3D12_HEAP_FLAG_ALLOW_WRITE_WATCH
D3D12_HEAP_FLAG_ALLOW_DISPLAY
D3D12_HEAP_FLAG_ALLOW_SHADER_ATOMICS (note shader atomics are required, this flag is for another feature, cross adapter atomics)
Resource binding model for Core devices
Support for resource binding tier 1 only
Exceptions:
No support for texture samplers
Support for 64 UAVs like Feature Level 11.1+ (as opposed to only 8)
Implementations do not have to implement bounds checking on shader accesses to resources through descriptors, out of bounds accesses produce undefined behavior.
As a byproduct, the descriptor range flag D3D12_DESCRIPTOR_RANGE_FLAG_DESCRIPTORS_STATIC_KEEPING_BUFFER_BOUNDS_CHECKS in root signatures is not supported.
UAV/CBV descriptors can only be made on resources from default heaps (so no upload/readback heaps). This forces your application to do copies to get data across CPU<->GPU.
Despite being the lowest binding capability tier, there are still some features required even in this tier worth calling out:
Descriptor heaps can be updated after command lists are recorded (see D3D12_DESCRIPTOR_RANGE_FLAG_DESCRIPTORS_VOLATILE in the resource binding spec)
Root descriptors are basically GPUVA pointers
Even though there is no MMU / VA support, buffer VAs that are used in root descriptors can be emulated by implementations by doing address patching.
Structured buffer restrictions
Structured buffers must have a base address that is 4 byte aligned, and stride must be 2 or a multiple of 4. The case for a stride of 2 is for apps with 16 bit data, particularly given there is no support for typed buffers in D3D_FEATURE_LEVEL_1_0_CORE.
Stride specified in descriptors must match the stride specified in HLSL.
Command queue support for Core devices
Compute and copy queues only (no 3D, video, etc. queues).
Shader support for Core devices
Compute shaders only, no graphics shaders (Vertex, Pixel Shaders, etc.) nor any related functionality such as render targets, swap chains, input assembler.
Arithmetic precision
Core devices do not have to support denorms for 16 bit floating point operations.
Supported APIs for Core devices
The list below represents the supported subset of the full application programming interface (APIs that are not supported in Core 1.0 Feature Level are not listed).
Az Azure HPC a HPC & AI számítási feladatok célhoz kötött felhőalapú képessége, amely élvonalbeli processzorokat és HPC-osztályú InfiniBand-összekapcsolásokat használ, így a legjobb alkalmazásteljesítményt, méretezhetőséget és értéket nyújtja. Az Azure HPC lehetővé teszi a felhasználók számára az innovációt, a termelékenységet és az üzleti rugalmasságot a magas rendelkezésre állású HPC & AI-technológiák révén, amelyek az üzleti és technikai igények változásával dinamikusan lefoglalhatók. Ez a képzési terv o
Hatékony lekérdezések írása, indexelési szabályzatok létrehozása, erőforrások kezelése és kiépítése az SQL API-ban és az SDK-ban a Microsoft Azure Cosmos DB-vel.