xcode-> GPU Capture frame-> GPU着色器分析器无法工作,我运行Capture帧,并通过GPU着色器分析器打开Metal计算着色器源代码.但我看不到像GPU着色器分析器那样的着色器代码性能配置文件
在sse内在函数中有两种实现累积的方法。但是其中之一得到了错误的结果。
#include <smmintrin.h>
int main(int argc, const char * argv[]) {
int32_t A[4] = {10, 20, 30, 40};
int32_t B[8] = {-1, 2, -3, -4, -5, -6, -7, -8};
int32_t C[4] = {0, 0, 0, 0};
int32_t D[4] = {0, 0, 0, 0};
__m128i lv = _mm_load_si128((__m128i *)A);
__m128i rv = _mm_load_si128((__m128i *)B);
// way 1 unexpected
rv += lv;
_mm_store_si128((__m128i *)C, rv);
// way 2 expected
rv = _mm_load_si128((__m128i *)B);
rv = _mm_add_epi32(lv, rv);
_mm_store_si128((__m128i *)D, rv);
return 0; …
Run Code Online (Sandbox Code Playgroud) 在 Xcode(Version 10.1 (10B61)) 中,我使用如下宏来检测 AVX512 支持。
#ifdef __SSE4_1__
#error "sse4_1"
#endif
#ifdef __AVX__
#error "avx"
#endif
#ifdef __AVX2__
#error "avx2"
#endif
#ifdef __AVX512__
#error "avx512"
#endif
Run Code Online (Sandbox Code Playgroud)
在默认构建设置中,SSE4_1处于活动状态,但 avx、avx2 未处于活动状态。当我在 Building Settings-->Apple Clang-Custom Compiler Flags-->Other C Flags 中添加-mavx时,启用AVX,进一步添加-mavx2以启用AVX和AVX2,但未知参数:'-mavx512'。你如何启用avx512并检测它?似乎很少有宏来检测avx512。
#define __AVX512BW__ 1
#define __AVX512CD__ 1
#define __AVX512DQ__ 1
#define __AVX512F__ 1
#define __AVX512VL__ 1
Run Code Online (Sandbox Code Playgroud)
它们之间有什么区别?
我的代码如下。
class A
{
enum kind { cpu, gpu };
A(int a)
{
value = a;
}
private:
int value;
};
class B
{
A a;
A b(A::cpu);
};
Run Code Online (Sandbox Code Playgroud)
此代码将发生错误。我知道实例类A作为B的成员是一个错误,但这提示使我感到困惑。