Skip to content

Commit

Permalink
update220422
Browse files Browse the repository at this point in the history
  • Loading branch information
mizutanilab committed Apr 22, 2022
1 parent 1db16c6 commit ef71bc2
Show file tree
Hide file tree
Showing 12 changed files with 506 additions and 227 deletions.
20 changes: 18 additions & 2 deletions source/DlgProperty.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -18,17 +18,18 @@ CDlgProperty::CDlgProperty(CWnd* pParent /*=NULL*/)
, bUseCUDAFFT(FALSE)
, m_EnFastSeek(TRUE)
, m_bEnableAVX2(FALSE)
, m_bEnableAVX512(FALSE) //220417
, m_EnCUDAStream(TRUE) //190620
{
Init(1, false, false, 0, CUDA_BLOCKSIZE, CUDA_WARPSIZE,
Init(1, false, false, false, 0, CUDA_BLOCKSIZE, CUDA_WARPSIZE,
0, ATISTREAM_MAXWORK, ATISTREAM_UNITWORK);
}

CDlgProperty::~CDlgProperty()
{
}

void CDlgProperty::Init(int icpu, bool bsimd, bool bavx2,
void CDlgProperty::Init(int icpu, bool bsimd, bool bavx2, bool bavx512, //220417
int iCudaCount, int iCudaBlock, int iCudaWarp,
int iATIcount, int iATImaxwork, int iATIunitwork, int iProcessorType) {
//CGazoApp* pApp = (CGazoApp*) AfxGetApp();
Expand All @@ -38,6 +39,8 @@ void CDlgProperty::Init(int icpu, bool bsimd, bool bavx2,
if (bSIMD) bEnableSIMD = TRUE;//160918 enabled again
bAVX2 = bavx2;
if (bAVX2) m_bEnableAVX2 = TRUE;
bAVX512 = bavx512; //220417
if (bAVX512) m_bEnableAVX512 = TRUE; //220417
maxCUDA = iCudaCount;
maxCUDAThreadsPerBlock = iCudaBlock;
iCUDAwarpsize = iCudaWarp;
Expand Down Expand Up @@ -84,6 +87,7 @@ void CDlgProperty::DoDataExchange(CDataExchange* pDX)
DDX_Control(pDX, IDC_PROP_ATISTREAMNWORK, m_ATIstreamNwork);
DDX_Check(pDX, IDC_PROP_ENFASTSEEK, m_EnFastSeek);
DDX_Check(pDX, IDC_PROP_AVX2, m_bEnableAVX2);
DDX_Check(pDX, IDC_PROP_AVX512, m_bEnableAVX512);
DDX_Check(pDX, IDC_PROP_CUDASTREAM, m_EnCUDAStream);
}

Expand All @@ -94,6 +98,7 @@ ON_BN_CLICKED(IDC_PROP_CUDAGPU, &CDlgProperty::OnBnClickedCudagpu)
ON_BN_CLICKED(IDC_PROP_ATISTREAM, &CDlgProperty::OnBnClickedPropAtistream)
ON_BN_CLICKED(IDC_PROP_SIMD, &CDlgProperty::OnBnClickedPropSimd)
ON_BN_CLICKED(IDC_PROP_INFO, &CDlgProperty::OnBnClickedPropInfo)
ON_BN_CLICKED(IDC_PROP_AVX2, &CDlgProperty::OnBnClickedPropAvx2)
END_MESSAGE_MAP()


Expand All @@ -110,6 +115,7 @@ BOOL CDlgProperty::OnInitDialog()
r_ProcessorType = m_ProcessorType;
rEnableSIMD = bEnableSIMD;
rEnableAVX2 = m_bEnableAVX2;
rEnableAVX512 = m_bEnableAVX512;//220417
rCUDAnblock = iCUDAnblock;
r_EnReport = m_EnReport;
r_EnFastSeek = m_EnFastSeek;
Expand Down Expand Up @@ -218,6 +224,7 @@ void CDlgProperty::EnableCtrl() {
//
GetDlgItem(IDC_PROP_SIMD)->EnableWindow(FALSE);
GetDlgItem(IDC_PROP_AVX2)->EnableWindow(FALSE);
GetDlgItem(IDC_PROP_AVX512)->EnableWindow(FALSE);//220417
GetDlgItem(IDC_PROP_NCPU)->EnableWindow(FALSE);
GetDlgItem(IDC_PROP_NGPU)->EnableWindow(FALSE);
GetDlgItem(IDC_PROP_CUDANBLOCK)->EnableWindow(FALSE);
Expand All @@ -233,6 +240,7 @@ void CDlgProperty::EnableCtrl() {
if (bSIMD) {
GetDlgItem(IDC_PROP_SIMD)->EnableWindow(TRUE);
if (bAVX2 && bEnableSIMD) GetDlgItem(IDC_PROP_AVX2)->EnableWindow(TRUE);
if (bAVX512 && m_bEnableAVX2 && bEnableSIMD) GetDlgItem(IDC_PROP_AVX512)->EnableWindow(TRUE);//220417
}
GetDlgItem(IDC_PROP_NCPU)->EnableWindow(TRUE);
break;}
Expand Down Expand Up @@ -317,6 +325,7 @@ void CDlgProperty::OnCancel()
iCPU = rCPU;
bEnableSIMD = rEnableSIMD;
m_bEnableAVX2 = rEnableAVX2;
m_bEnableAVX512 = rEnableAVX512;//220417
iCUDA = rCUDA;
iCUDAnblock = rCUDAnblock;
bUseCUDAFFT = r_UseCUDAFFT;
Expand Down Expand Up @@ -344,3 +353,10 @@ void CDlgProperty::OnBnClickedPropInfo()
CGazoApp* pApp = (CGazoApp*) AfxGetApp();
pApp->OnViewError();
}


void CDlgProperty::OnBnClickedPropAvx2()
{
UpdateData();
EnableCtrl();
}
8 changes: 5 additions & 3 deletions source/DlgProperty.h
Original file line number Diff line number Diff line change
Expand Up @@ -25,13 +25,13 @@ class CDlgProperty : public CDialog
DECLARE_MESSAGE_MAP()
public:
virtual BOOL OnInitDialog();
void Init(int icpu, bool bsimd, bool bavx2,
void Init(int icpu, bool bsimd, bool bavx2, bool bavx512, //220417
int iCudaCount, int iCudaBlock, int iCudaWarp,
int iATIcount, int iATImaxwork, int iATIunitwork, int iProcessorType = -1);
CComboBox m_CPU;
CComboBox m_Memory;
int iCPU, iMemory;
bool bSIMD, bAVX2;
bool bSIMD, bAVX2, bAVX512;//220417
int iCUDA, iCUDAnblock, iCUDAwarpsize;
int iATIstream, iATIstreamNwork, iATIstreamUnitwork;
protected:
Expand All @@ -41,7 +41,7 @@ class CDlgProperty : public CDialog
int rCUDA, maxCUDA, rCUDAnblock, maxCUDAThreadsPerBlock;
int r_ProcessorType;
int rATIstream, maxATIstream, rATIstreamNwork, maxATIstreamNwork;
BOOL rEnableSIMD, rEnableAVX2;
BOOL rEnableSIMD, rEnableAVX2, rEnableAVX512; //220417
BOOL r_EnReport;
BOOL r_UseCUDAFFT;
BOOL r_EnFastSeek;
Expand All @@ -66,7 +66,9 @@ class CDlgProperty : public CDialog
CComboBox m_ATIstreamNwork;
BOOL m_EnFastSeek;
BOOL m_bEnableAVX2;
BOOL m_bEnableAVX512; // 220417
afx_msg void OnBnClickedPropSimd();
afx_msg void OnBnClickedPropInfo();
BOOL m_EnCUDAStream;
afx_msg void OnBnClickedPropAvx2();
};
13 changes: 8 additions & 5 deletions source/DlgRenumFiles.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -230,21 +230,24 @@ void CDlgRenumFiles::OnOK()
e3p.UnitLength();
CXyz e1p = e2 * e3p;
CXyz e2p = e3p * e1p;
if (e3p.Length2() < 1E-6) {
//220118 if (e3p.Length2() < 1E-6) {
if (e1p.Length2() < 1E-6) {
e2p = e3p * e1;
e1p = e2p * e3p;
}
b[0] = e1p.X(e1); b[3] = e1p.X(e2); b[6] = e1p.X(e3);
b[1] = e2p.X(e1); b[4] = e2p.X(e2); b[7] = e2p.X(e3);
b[2] = e3p.X(e1); b[5] = e3p.X(e2); b[8] = e3p.X(e3);
//CString line, msg = "";
//line.Format("%f %f %f\r\n%f %f %f\r\n%f %f %f\r\n", e1p.x, e1p.y, e1p.z, e2p.x, e2p.y, e2p.z, e3p.x, e3p.y, e3p.z); msg += line;
//line.Format("%f %f %f\r\n%f %f %f\r\n%f %f %f\r\n", b[0], b[1], b[2], b[3], b[4], b[5], b[6], b[7], b[8]); msg += line;

TReal x1 = b[0] * (-ixcent) + b[3] * (-iycent) + b[6] * (-izcent);
TReal y1 = b[1] * (-ixcent) + b[4] * (-iycent) + b[7] * (-izcent);
TReal z1 = b[2] * (-ixcent) + b[5] * (-iycent) + b[8] * (-izcent);
ixmin = (x1 < ixmin) ? (int)x1 : ixmin; ixmax = (x1 > ixmax) ? (int)x1 : ixmax;
iymin = (y1 < iymin) ? (int)y1 : iymin; iymax = (y1 > iymax) ? (int)y1 : iymax;
izmin = (z1 < izmin) ? (int)z1 : izmin; izmax = (z1 > izmax) ? (int)z1 : izmax;
//CString line, msg = "";
//line.Format("%d %d %d ==> %f %f %f\r\n", -ixcent, -iycent, -izcent, x1, y1, z1); msg += line;
x1 = b[0] * (-ixcent + ixref-1) + b[3] * (-iycent) + b[6] * (-izcent);
y1 = b[1] * (-ixcent + ixref-1) + b[4] * (-iycent) + b[7] * (-izcent);
Expand Down Expand Up @@ -294,9 +297,6 @@ void CDlgRenumFiles::OnOK()
ixmin = (x1 < ixmin) ? (int)x1 : ixmin; ixmax = (x1 > ixmax) ? (int)x1 : ixmax;
iymin = (y1 < iymin) ? (int)y1 : iymin; iymax = (y1 > iymax) ? (int)y1 : iymax;
izmin = (z1 < izmin) ? (int)z1 : izmin; izmax = (z1 > izmax) ? (int)z1 : izmax;
//CString line;
//line.Format("%d-%d %d-%d %d-&d", ixmin, ixmax, iymin, iymax, izmin, izmax);
//AfxMessageBox(line);
//output images
const unsigned int ixsize = ixmax - ixmin + 1;
const unsigned int iysize = iymax - iymin + 1;
Expand All @@ -321,6 +321,9 @@ void CDlgRenumFiles::OnOK()
iz1min = (iz1min < 0) ? 0 : iz1min;
nCache = (iz1max-iz1min+1 > nCache) ? iz1max-iz1min+1 : nCache;
}
//line.Format("%d-%d %d-%d %d-%d %d", ixmin, ixmax, iymin, iymax, izmin, izmax, nCache); msg += line;
//AfxMessageBox(msg);
//return;//220118
//alloc memory
MEMORYSTATUSEX memory;
memory.dwLength = sizeof(memory);
Expand Down
6 changes: 5 additions & 1 deletion source/cudaReconst.cu
Original file line number Diff line number Diff line change
Expand Up @@ -519,7 +519,11 @@ extern "C" int GetCudaNumberOfCores(int iDevice, int* piCores, int* piProcessors
cudaDeviceProp deviceProp;
if (cudaSuccess != cudaGetDeviceProperties(&deviceProp, iDevice)) { return CUDA_ERROR_DEVICE_GETPROPERTY; }
if (deviceProp.major == 9999 && deviceProp.minor == 9999) { return CUDA_ERROR_VIRTUAL_DEVICE_DETECTED; }//virtual device
if (piCores) *piCores = _ConvertSMVer2Cores(deviceProp.major, deviceProp.minor);
//220422 if (piCores) *piCores = _ConvertSMVer2Cores(deviceProp.major, deviceProp.minor);
if (piCores) {//220422
if ((deviceProp.major == 8) && (deviceProp.minor == 6)) *piCores = 128;//GA102-7 has 64 FP32 + 64 FP/INT32 = 128 cores per SM (NVIDIA Ampere GA102 GPU Architecture, 2021)
else *piCores = _ConvertSMVer2Cores(deviceProp.major, deviceProp.minor);
}
if (piProcessors) *piProcessors = deviceProp.multiProcessorCount;
return 0;
}
Expand Down
Binary file modified source/gazo.aps
Binary file not shown.
46 changes: 37 additions & 9 deletions source/gazo.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -105,6 +105,7 @@ CGazoApp::CGazoApp()
int iLogicalProcessorCount = 1;
bool bSIMD = false;
bool bAVX2 = false;//181222
bool bAVX512 = false;//220417
__cpuid(CPUInfo, 0);
int idmax = CPUInfo[0];
if (idmax >= 1) {
Expand All @@ -123,8 +124,21 @@ CGazoApp::CGazoApp()
if (idmax >= 7) {
#ifdef _MSC_VER
#if _MSC_VER >=1910 //VS2017 or later
__cpuidex(CPUInfo, 7, 0);
if (CPUInfo[1] & (1 << 5)) bAVX2 = true;
//__cpuidex(CPUInfo, 7, 0);
//if (CPUInfo[1] & (1 << 5)) bAVX2 = true;
//220417==>
if ((CPUInfo[2] & 0x08000000) && //CPUID.ECX.bit27 XSAVE enabled by OS => xgetbv available
(CPUInfo[2] & 0x10000000)) {//CPUID.ECX.bit28 AVX
const __int64 xcr0 = _xgetbv(0);
if ((xcr0 & 0x06) == 0x06) {//OS supoorts AVX
__cpuidex(CPUInfo, 7, 0);
if (CPUInfo[1] & 0x20) bAVX2 = true; //CPUID(7,0).EBX.bit5
if ((xcr0 & 0xe0) == 0xe0) {//OS supoorts AVX-512
if ((CPUInfo[1] & 0x00030000) == 0x00030000) bAVX512 = true;//512F & 512DQ
}
}
}
//==>220417
#endif
#endif
}
Expand Down Expand Up @@ -155,6 +169,8 @@ CGazoApp::CGazoApp()
else msg += " MMX+SSE+SSE2: not detected\r\n";
if (bAVX2) msg += " AVX2: detected\r\n";
else msg += " AVX2: not detected\r\n";
if (bAVX512) msg += " AVX-512F+DQ: detected\r\n";
else msg += " AVX-512F+DQ: not detected\r\n";
//memory
MEMORYSTATUSEX memory;
memory.dwLength = sizeof(memory);
Expand Down Expand Up @@ -271,7 +287,7 @@ CGazoApp::CGazoApp()
}
}
//
dlgProperty.Init(iAvailableCPU, bSIMD, bAVX2,
dlgProperty.Init(iAvailableCPU, bSIMD, bAVX2, bAVX512,
iCUDAcount, iCUDAblock, iCUDAwarp,
iATIcount, iATImaxwork, iATIunitwork, iProcessorType);
//prevPixelWidth = -1;
Expand Down Expand Up @@ -738,6 +754,8 @@ TErr CGazoApp::CalcAvgImage(CString path, CString* files, int nfiles) {

void CGazoApp::OnTomoLsqfit()
{
//201126
const int nframes = 20;
CString sPathName[] = { "", "" };
POSITION pos = GetFirstDocTemplatePosition();
while (pos) {
Expand All @@ -752,9 +770,11 @@ void CGazoApp::OnTomoLsqfit()
}
}
}
const int nframes = 20;
int nPathName[] = { 0,0 };
TCHAR path_buffer[_MAX_PATH];
TCHAR drive[_MAX_DRIVE]; TCHAR dir[_MAX_DIR]; TCHAR fnm[_MAX_FNAME]; TCHAR ext[_MAX_EXT];
CFile file;
CMainFrame* pf = (CMainFrame*)AfxGetMainWnd();
for (int j = 0; j <= 1; j++) {
_stprintf_s(path_buffer, _MAX_PATH, sPathName[j]);
_tsplitpath_s(path_buffer, drive, _MAX_DRIVE, dir, _MAX_DIR, fnm, _MAX_FNAME, ext, _MAX_EXT);
Expand All @@ -769,16 +789,24 @@ void CGazoApp::OnTomoLsqfit()
sfnm.Format(fmt, i + idx0);
_stprintf_s(fnm, _MAX_FNAME, sfnm);
_tmakepath_s(path_buffer, _MAX_PATH, drive, dir, fnm, ext);
sPathName[j] += path_buffer;
sPathName[j] += "\r\n";
CString msg = "Accessing ";
if (pf) pf->m_wndStatusBar.SetPaneText(0, msg + path_buffer);
if (file.Open(path_buffer, CFile::modeRead)) {
file.Close();
sPathName[j] += path_buffer;
sPathName[j] += "\r\n";
nPathName[j]++;
}
else break;
}
}
AfxMessageBox(sPathName[0] + "\r\n-----\r\n" + sPathName[1]);
if (pf) pf->m_wndStatusBar.SetPaneText(0, "");
//AfxMessageBox(sPathName[0] + "\r\n-----\r\n" + sPathName[1]);
CDlgLsqfit dlg;
dlg.m_RefList = sPathName[0];
dlg.m_QryList = sPathName[1];
dlg.nRefFiles = nframes;
dlg.nQryFiles = nframes;
dlg.nRefFiles = nPathName[0];
dlg.nQryFiles = nPathName[1];
dlg.UpdateNfiles();
dlg.DoModal();
}
Expand Down
45 changes: 23 additions & 22 deletions source/gazo.rc
Original file line number Diff line number Diff line change
Expand Up @@ -315,7 +315,7 @@ BEGIN
ICON IDR_MAINFRAME,IDC_STATIC,11,17,20,20
DEFPUSHBUTTON "OK",IDOK,164,7,36,14,WS_GROUP
LTEXT "CGazoApp::CGazoApp() sProgVersion",IDC_ABOUT_VER,42,11,115,16,SS_NOPREFIX | WS_TABSTOP
LTEXT "Copyright (C) 2008-2021 Ryuta Mizutani.\r\nAll rights reserved.",IDC_STATIC,46,31,154,17
LTEXT "Copyright (C) 2008-2022 Ryuta Mizutani.\r\nAll rights reserved.",IDC_STATIC,46,31,154,17
LTEXT "https://mizutanilab.github.io/",IDC_STATIC,54,49,139,15
LTEXT "File->Open one of *.his, *.img, or *.h5 files.\r\nGo 'Tomography->Reconstruction' menu.\r\n Click 'Show image' to calcurate tomograms.\r\n Examine tomograms at top and bottom of the sample.\r\n Refine parameters as you like.\r\n Then issue or queue execution.",IDC_STATIC,17,67,179,60
LTEXT "Again File->Open one of rec*.tif files.\r\nGo 'Tomography->Histogram/conversion' menu.\r\n Click 'Select Image'\r\n to select files to convert.\r\n Move green and red lines in the histogram\r\n to define output LAC levels.\r\n Issue or queue execution.",IDC_STATIC,17,119,183,61
Expand Down Expand Up @@ -424,36 +424,37 @@ BEGIN
EDITTEXT IDC_MSG_TEXT,7,7,173,129,ES_MULTILINE | ES_READONLY | ES_WANTRETURN | WS_VSCROLL | WS_HSCROLL
END

IDD_PROPERTY DIALOGEX 0, 0, 163, 240
IDD_PROPERTY DIALOGEX 0, 0, 163, 253
STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Computing configuration"
FONT 9, "MS Sans Serif", 0, 0, 0x0
BEGIN
DEFPUSHBUTTON "OK",IDOK,95,219,28,14
DEFPUSHBUTTON "Cancel",IDCANCEL,128,219,28,14
DEFPUSHBUTTON "OK",IDOK,95,232,28,14
DEFPUSHBUTTON "Cancel",IDCANCEL,128,232,28,14
COMBOBOX IDC_PROP_NCPU,81,47,43,70,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
LTEXT "CPU core",IDC_STATIC,21,50,48,8
COMBOBOX IDC_PROP_MEMORY,62,7,43,70,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
LTEXT "Memory usage",IDC_STATIC,12,9,48,8
CONTROL "Use SIMD instructions",IDC_PROP_SIMD,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,21,63,85,10
CONTROL "On board x86/x64 CPU",IDC_PROP_INTELCPU,"Button",BS_AUTORADIOBUTTON | WS_GROUP,12,34,124,10
CONTROL "NVIDIA CUDA GPU",IDC_PROP_CUDAGPU,"Button",BS_AUTORADIOBUTTON,12,76,137,10
CONTROL "AMD Stream GPU",IDC_PROP_ATISTREAM,"Button",BS_AUTORADIOBUTTON,12,147,132,10
GROUPBOX "Processor",IDC_STATIC,7,23,149,173
COMBOBOX IDC_PROP_NGPU,81,89,43,70,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
LTEXT "GPU device",IDC_STATIC,21,92,48,8
COMBOBOX IDC_PROP_CUDANBLOCK,81,106,43,70,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
LTEXT "Threads/block",IDC_STATIC,21,109,48,8
CONTROL "Enable progress bar",IDC_PROP_ENREPORT,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,9,220,78,10
CONTROL "Use CUDA FFT routine",IDC_PROP_CUDAFFT,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,21,121,85,10
COMBOBOX IDC_PROP_NATISTREAM,81,160,43,70,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
LTEXT "GPU device",IDC_STATIC,21,163,48,8
COMBOBOX IDC_PROP_ATISTREAMNWORK,81,177,43,70,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
LTEXT "Work group size",IDC_STATIC,21,180,57,8
CONTROL "Enable fast file access",IDC_PROP_ENFASTSEEK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,9,204,84,10
CONTROL "AVX/AVX2",IDC_PROP_AVX2,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,106,63,47,10
PUSHBUTTON "Info/err",IDC_PROP_INFO,127,200,29,14
CONTROL "Enable stream",IDC_PROP_CUDASTREAM,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,21,133,66,10
CONTROL "NVIDIA CUDA GPU",IDC_PROP_CUDAGPU,"Button",BS_AUTORADIOBUTTON,12,90,137,10
CONTROL "AMD Stream GPU",IDC_PROP_ATISTREAM,"Button",BS_AUTORADIOBUTTON,12,161,132,10
GROUPBOX "Processor",IDC_STATIC,7,23,149,185
COMBOBOX IDC_PROP_NGPU,81,103,43,70,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
LTEXT "GPU device",IDC_STATIC,21,106,48,8
COMBOBOX IDC_PROP_CUDANBLOCK,81,120,43,70,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
LTEXT "Threads/block",IDC_STATIC,21,123,48,8
CONTROL "Enable progress bar",IDC_PROP_ENREPORT,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,9,234,78,10
CONTROL "Use CUDA FFT routine",IDC_PROP_CUDAFFT,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,21,135,85,10
COMBOBOX IDC_PROP_NATISTREAM,81,174,43,70,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
LTEXT "GPU device",IDC_STATIC,21,177,48,8
COMBOBOX IDC_PROP_ATISTREAMNWORK,81,191,43,70,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
LTEXT "Work group size",IDC_STATIC,21,194,57,8
CONTROL "Enable fast file access",IDC_PROP_ENFASTSEEK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,9,218,84,10
CONTROL "AVX/AVX2",IDC_PROP_AVX2,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,21,76,47,10
PUSHBUTTON "Info/err",IDC_PROP_INFO,127,214,29,14
CONTROL "Enable stream",IDC_PROP_CUDASTREAM,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,21,147,66,10
CONTROL "AVX-512F+DQ",IDC_PROP_AVX512,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,75,76,66,10
END

IDD_RECON_OPT DIALOGEX 0, 0, 231, 211
Expand Down Expand Up @@ -885,7 +886,7 @@ BEGIN
LEFTMARGIN, 7
RIGHTMARGIN, 156
TOPMARGIN, 7
BOTTOMMARGIN, 233
BOTTOMMARGIN, 246
END

IDD_RECON_OPT, DIALOG
Expand Down
Loading

0 comments on commit ef71bc2

Please sign in to comment.