Comments (10)
Below is my attempt at an MCVE. It compiles cleanly with icc -std=c11 -O3 -qopenmp -qopt-report capture.c -o capture.x
.
Can you evolve my code into a valid MCVE?
#include <stdio.h>
#include <stdlib.h>
struct thread_comm_s
{
int n;
};
typedef struct thread_comm_s thread_comm_t;
thread_comm_t c;
int main(int argc, char* argv[])
{
int a;
thread_comm_t * p = &c;
_Pragma("omp atomic capture")
a = ++(p->n);
return 0;
}
from blis.
Here's a better attempt:
#include <stdio.h>
#include <stdlib.h>
typedef size_t dim_t;
struct thread_comm_s
{
dim_t n;
};
typedef struct thread_comm_s thread_comm_t;
thread_comm_t c;
int main(int argc, char* argv[])
{
dim_t a;
thread_comm_t * p = &c;
_Pragma("omp atomic capture")
a = ++(p->n);
return 0;
}
from blis.
BLIS is compiling for me with icc 15.0.1.
Victor, can you attach the make_defs.mk file that you're using?
On Thu, Aug 20, 2015 at 7:52 AM, VictorEijkhout [email protected]
wrote:
Compiling frame/base/bli_threading_omp.c
frame/base/bli_threading_omp.c: In function 'bli_barrier':
frame/base/bli_threading_omp.c:88: error: expected end of line before 'capture'
frame/base/bli_threading_omp.c:89: error: invalid operator for '#pragma omp atomic' before '=' token
make: *** [obj/sandybridge/frame/base/bli_threading_omp.o] Error 1I know that earlier Intel compilers did not support the full OMP 3.1
standard, but this is Intel 15.—
Reply to this email directly or view it on GitHub
#32.
from blis.
On Aug 20, 2015, at 10:43 AM, Tyler Michael Smith <[email protected]mailto:[email protected]> wrote:
BLIS is compiling for me with icc 15.0.1.
Victor, can you attach the make_defs.mk file that you're using?
I’m not using anything custom. Here’s my whole installation:
./configure -p $RPM_BUILD_ROOT/%{INSTALL_DIR} sandybridge
make
make install
I think this means I’m using the standard sandybridge configuration.
If you are using custom settings, feel free to mail them to me and indicate how to use them.
Victor.
from blis.
If you are using the sandybridge configuration unmodified, then you're not using icc, you're using gcc.
from blis.
On Aug 21, 2015, at 10:30 AM, Field G. Van Zee <[email protected]mailto:[email protected]> wrote:
If you are using the sandybridge configuration unmodified, then you're not using icc, you're using gcc.
Override with configure option?
Victor.
from blis.
On Aug 21, 2015, at 10:30 AM, Field G. Van Zee <[email protected]mailto:[email protected]> wrote:
If you are using the sandybridge configuration unmodified, then you're not using icc, you're using gcc.
PS I didn’t know the compiler was a property of the processor architecture…..
from blis.
Override with configure option?
Someday, yes. But for now, the compiler shall be specified in the configuration.
PS I didn’t know the compiler was a property of the processor architecture…..
It's not, it's a property of the configuration, which specifies the build environment as well as the kernels and their associated parameters (such as blocksizes).
from blis.
Is there any further action required on this specific issue or can it be closed?
from blis.
I think it can be closed. I suspect the issue was born largely from confusion over the build system. Devin's recent upgrades to the configure script, supporting icc and gcc explicitly, certainly helps as well.
from blis.
Related Issues (20)
- Multithreading.md does not introduce include file needed for function calls HOT 1
- make install doesn't work with new install directory HOT 2
- When could you support AMD Zen4 arch? HOT 7
- Discrepancy in Haswell Results for Dgemm HOT 5
- cspan: Suggesting an ergonomic C99 API with multidimensional matrices for BLIS HOT 10
- "Missing" symbols relative to OpenBLAS HOT 16
- triggers segfault in "make check" process with configuration --disable-sba-pools on CentOS (SkylakeX)
- Default BLIS_[MNK]T values never actually set HOT 9
- fatal error: malloc.h: No such file or directory HOT 2
- Header path for default source build and Debian should match HOT 6
- bli_gemmsup_rd_haswell_asm_d6x8m.c:1296:1:error:bp cannot be used in ams here HOT 2
- New release? HOT 6
- A more complete list of ARM cpu implementations
- arm64 cpu identification is not portable to BSDs HOT 2
- inconsistence between documentation and code for bli_?trmm3 HOT 5
- What is the best way to debug BLIS? HOT 2
- GPU support and PortBLAS HOT 4
- getting error as illegal instruction HOT 4
- Support compiler names with spaces HOT 1
- Regarding Default Behaviour for CPU Affinity HOT 4
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from blis.