Skip to content

AVX512 version for POVRAY #452

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 6 commits into
base: release/v3.8.0
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
62 changes: 62 additions & 0 deletions avx512_build_setup/ADDITIONAL_README_FOR_AVX512_Version.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
Notes for AVX512 Windows build
==============================

The visual studio version was updated from vs2015 to vs2022 to enable support of AVX512 Version
1. Set the configuration in solution file to Release-AVX512 | x64
2. Select the 'Generic POV-Ray > povbase' project and expand 'Backend Headers', then open the
file `build.h`(source/base/build.h) listed within it.In it replace with name
and email of person who builds the code in `BUILT_BY` flag and comment the #error directive (line 129)

Steps for console build:
1. In syspovconfig.h(windows/povconfig/syspovconfig.h) uncomment the #define _CONSOLE. (line 56)
2. Build the solution file and in the vs2022/bin64 folder we can run the POVRAY examples with povconsole64-avx512.exe.
```
General command example - povconsole64-avx512.exe +Ibenchmark.pov
Single worker thread - povconsole64-avx512.exe +WT1 benchmark.pov
Output image - benchmark.png
```
Results with the AVX512 version has been attached in the same folder.

Notes for UNIX build
====================

Dependencies for unix build
```
libboost-dev
libboost-date-time-dev
libboost-thread-dev
libz-dev
libpng-dev
libjpeg-dev
libtiff-dev
libopenexr-dev
pkg-config (if its already not there)
```

Steps :
Generating configure and building the code :
```
% cd unix/
% ./prebuild.sh
% cd ../
% ./configure COMPILED_BY="your name <email@address>"
% make
```

To build with icpc :
```
% source /opt/intel/oneapi/setvars.sh
% cd unix/
% ./prebuild.sh
% cd ../
% ./configure COMPILED_BY="your name <email@address>" CXX=icpc
% make
```

Sample commands (inside the unix folder) :
```
General command example - ./povray +Ibenchmark.pov
Single worker thread - ./povray +WT1 benchmark.pov
Output image - benchmark.png
```

Binary file not shown.
2 changes: 1 addition & 1 deletion libraries/boost/libs/thread/src/win32/tss_pe.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -112,7 +112,7 @@ extern BOOL (WINAPI * const _pDefaultRawDllMainOrig)(HANDLE, DWORD, LPVOID) = NU

//Definitions required by implementation

#if (_MSC_VER < 1300) || (_MSC_VER > 1900) // 1300 == VC++ 7.0, 1900 == VC++ 14.0
#if (_MSC_VER < 1300) || (_MSC_VER > 1941) // 1300 == VC++ 7.0, 1941 == VC++ 14.32
typedef void (__cdecl *_PVFV)();
#define INIRETSUCCESS
#define PVAPI void __cdecl
Expand Down
14 changes: 7 additions & 7 deletions libraries/openexr/IlmImf/ImfAttribute.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -63,14 +63,14 @@ Attribute::~Attribute () {}

namespace {

struct NameCompare: std::binary_function <const char *, const char *, bool>
{
bool
operator () (const char *x, const char *y) const
struct NameCompare
{
return strcmp (x, y) < 0;
}
};
bool
operator () (const char* x, const char* y) const
{
return strcmp(x, y) < 0;
}
};


typedef Attribute* (*Constructor)();
Expand Down
Loading