intel

How to completely switch off threading in TBB code

≯℡__Kan透↙ 提交于 2020-01-24 12:06:29
问题 Note: this is NOT a duplicate of this quesiton. Given a complex software parallelized with TBB, how do I completely switch off threading? I'm aware of the task_scheduler_init: int nthreads = tbb::task_scheduler_init::default_num_threads(); const char* cnthreads = getenv("TBB_NUM_THREADS"); if (cnthreads) nthreads = std::max(1, atoi(cnthreads)); tbb::task_arena arena(nthreads, 1); tbb::task_scheduler_init init(nthreads); However, this solution (related to this) does not switch off threading.

How does the indexing of the Ice Lake's 48KiB L1 data cache work?

孤街浪徒 提交于 2020-01-24 04:27:05
问题 The Intel manual optimization (revision September 2019) shows a 48 KiB 8-way associative L1 data cache for the Ice Lake microarchitecture. 1 Software-visible latency/bandwidth will vary depending on access patterns and other factors. This baffled me because: There are 96 sets (48 KiB / 64 / 8), which is not a power of two. The indexing bits of a set and the indexing bits of the byte offset add to more than 12 bits, this makes the cheap-PIPT-as-VIPT-trick not available for 4KiB pages. All in

Intel SGX simulator for Linux

允我心安 提交于 2020-01-23 00:35:38
问题 According to this tutorial, it is possible to develop and run SGX applications in a simulator when developing in Windows with Visual Studio. The tutorial does not mention Linux although there is a version of the SDK available for Linux. Is the SGX simulator from Intel exclusive to Windows, or is there a Linux version as well? (Note: I know about the existence of OpenSGX , I'm asking specifically about the Intel simulator.) 回答1: Yes, you can use the SDK in simulation mode. In Linux, you must:

what does endbr64 instruction actually do?

霸气de小男生 提交于 2020-01-22 15:16:28
问题 I've been trying to understand assembly language code generated by GCC and frequently encounter this instruction at start of many functions including _start(), but coudn't find any guide explaining it's purpose 31-0000000000001040 <_start>: 32: 1040: f3 0f 1e fa endbr64 33- 1044: 31 ed xor ebp,ebp 回答1: It stands for "End Branch 64 bit" -- or more precisely, Terminate Indirect Branch in 64 bit Intel has a document about this instruction. Here is the operation: IF EndbranchEnabled(CPL) & EFER

what does endbr64 instruction actually do?

不想你离开。 提交于 2020-01-22 15:13:24
问题 I've been trying to understand assembly language code generated by GCC and frequently encounter this instruction at start of many functions including _start(), but coudn't find any guide explaining it's purpose 31-0000000000001040 <_start>: 32: 1040: f3 0f 1e fa endbr64 33- 1044: 31 ed xor ebp,ebp 回答1: It stands for "End Branch 64 bit" -- or more precisely, Terminate Indirect Branch in 64 bit Intel has a document about this instruction. Here is the operation: IF EndbranchEnabled(CPL) & EFER

What does 'REX' stand for in an x86-64 REX prefix?

▼魔方 西西 提交于 2020-01-21 12:05:12
问题 From Intel's SDM, section 2.2.1 specifies that the REX prefix is used to: Specify GPRs and SSE registers. Specify 64-bit operand size. Specify extended control registers But what do the letters REX stand for in the acronym? 回答1: This 2002 Hot Chips presentation by AMD expands the acronym on slide 10: "REX (Register Extension)". Kevin McGrath and Dave Christie, "The AMD x86-64 Architecture: Extending the x86 to 64 bits", Hot Chips 14, August 2002. 来源: https://stackoverflow.com/questions

Build Docker image for ARM architecture on Intel machine (Mac)

这一生的挚爱 提交于 2020-01-21 03:51:28
问题 I'd like to be able to build a Docker image for ARM from my Mac. I know I can run ARM containers on my Mac using QEMU but I can't figure out how to build for ARM. 回答1: This is a little convoluted right now. I am sure it will be made easier by docker in the near future. Basically you need to build a contained based on a container that has the qemu-arm-static binary in it already. You can see how it is done by looking at Raspberry Pi base image w/qemu-arm-static which builds the images directly

Build Docker image for ARM architecture on Intel machine (Mac)

泄露秘密 提交于 2020-01-21 03:51:24
问题 I'd like to be able to build a Docker image for ARM from my Mac. I know I can run ARM containers on my Mac using QEMU but I can't figure out how to build for ARM. 回答1: This is a little convoluted right now. I am sure it will be made easier by docker in the near future. Basically you need to build a contained based on a container that has the qemu-arm-static binary in it already. You can see how it is done by looking at Raspberry Pi base image w/qemu-arm-static which builds the images directly

How to write to StdOut in Windows and FASM?

99封情书 提交于 2020-01-17 01:11:08
问题 The question is pretty simple, yet I can't seem to find how to do it: how do I write to StdOut in Windows/FASM? There does not seem to be any documentation online. Ideas? 回答1: There are a few options... 1) Use the WinAPI. This is either WriteConsole OR by using CreateFile with the filename as CON and then using WriteFile 2) Using msvcrt, and printf as you would in a c program. 来源: https://stackoverflow.com/questions/7263097/how-to-write-to-stdout-in-windows-and-fasm

How to write to StdOut in Windows and FASM?

China☆狼群 提交于 2020-01-17 01:11:07
问题 The question is pretty simple, yet I can't seem to find how to do it: how do I write to StdOut in Windows/FASM? There does not seem to be any documentation online. Ideas? 回答1: There are a few options... 1) Use the WinAPI. This is either WriteConsole OR by using CreateFile with the filename as CON and then using WriteFile 2) Using msvcrt, and printf as you would in a c program. 来源: https://stackoverflow.com/questions/7263097/how-to-write-to-stdout-in-windows-and-fasm