// Copyright 2022 The Abseil Authors // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // https://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License.
// Enumeration of architectures that we have special-case tuning parameters for. // This set may change over time. enumclass CpuType {
kUnknown,
kIntelHaswell,
kAmdRome,
kAmdNaples,
kAmdMilan,
kAmdGenoa,
kAmdRyzenV3000,
kIntelCascadelakeXeon,
kIntelSkylakeXeon,
kIntelBroadwell,
kIntelSkylake,
kIntelIvybridge,
kIntelSandybridge,
kIntelWestmere,
kArmNeoverseN1,
kArmNeoverseV1,
kAmpereSiryn,
kArmNeoverseN2,
kArmNeoverseV2
};
// Returns the type of host CPU this code is running on. Returns kUnknown if // the host CPU is of unknown type, or if detection otherwise fails.
CpuType GetCpuType();
// Returns whether the host CPU supports the CPU features needed for our // accelerated implementations. The CpuTypes enumerated above apart from // kUnknown support the required features. On unknown CPUs, we can use // this to see if it's safe to use hardware acceleration, though without any // tuning. bool SupportsArmCRC32PMULL();
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.