Skip to content
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

miopenFindConvolutionForwardAlgorithm segfault #37

Closed
AdemSchen opened this issue May 16, 2018 · 2 comments
Closed

miopenFindConvolutionForwardAlgorithm segfault #37

AdemSchen opened this issue May 16, 2018 · 2 comments

Comments

@AdemSchen
Copy link

Hello! We have been struggling a lot with the miopenFindConvolutionForwardAlgorithm function. Every time we call it we get segfault. We have allocated memory for the buffers using OpenCL. We can not seem to find the problem. We are novice programmers in OpenCL and might be allocating memory incorrectly, or doing something else wrong. We have included our code below. All help is much appreciated!


#include <iostream>
#include <cstdio>

#include "activ_driver.hpp"
#include "bn_driver.hpp"
#include "conv_driver.hpp"
#include "driver.hpp"
#include "gemm_driver.hpp"
#include "lrn_driver.hpp"
#include "pool_driver.hpp"
#include "softmax_driver.hpp"
#include "rnn_driver.hpp"
#include "miopen/config.h"
#include <miopen/miopen.h>
#include <miopen/tensor.hpp>
#include <miopen/env.hpp>
#include <miopen/convolution.hpp>

#include <CL/cl.h>
#include <CL/cl.hpp>
#include <CL/cl_ext.h>
#include <CL/cl_gl.h>
#include <CL/cl_gl_ext.h>
#include <CL/cl_platform.h>
#include <CL/opencl.h>

#include <stdio.h>
#include <stdlib.h>
#include <algorithm>
#include <cstdlib>
#include <cstring>
#include <float.h>
#include <fstream>
#include <memory>
using namespace std;

#define MEM_FLAG		CL_MEM_ALLOC_HOST_PTR 

int main() 
{
	/* _______DECLARATIONS_______ */

	int status = 0;		// Error codes
	int n = 1;	  	// Mini-Batch size (how many images)
	int c = 1; 		// Nr of channels (eg RGB is 3, grayscale is 1)
	int stride = 1;
	int padding = 1;
	int dilation = 1;
	size_t WorkSpaceSize = 0;
	int requestAlgoCount = 1;
	int returnedAlgoCount = 0;
	bool ExhaustiveSearch = 0;

	/* _______CREATING THE ENVIRONMENT_______ */
	miopenHandle_t Network;
	status = miopenCreate(&Network); 
	if (status!=0)
	{
		printf("Error in miopencreate. Error code %d",status);
		return 0;
	}

	/* _______CREATING THE INPUT TENSOR_______ */
	miopenTensorDescriptor_t InputTensorDesc;
	status = miopenCreateTensorDescriptor(&InputTensorDesc);	
	if (status!=0)
	{
		printf("Error in miopenCreateTensorDescriptor. Error code %d",status);
		return 0;
	}

	status = miopenSet4dTensorDescriptor(	InputTensorDesc,
						miopenFloat,
						n, //batch size
						c, //nr of channels
						10, //data height img.rows
						10); //data width img.cols
	if (status!=0)
	{
		printf("Error in miopenSet4dTensorDescriptor. Error code %d",status);
		return 0;
	}

	/* _________CREATING THE OUTPUT TENSOR______________ */
	miopenTensorDescriptor_t OutputTensorDesc;
	status = miopenCreateTensorDescriptor(&OutputTensorDesc);	
	if (status!=0)
	{
		printf("Error in miopencreate. Error code %d",status);
		return 0;
	}

	status = miopenSet4dTensorDescriptor(	OutputTensorDesc,
						miopenFloat,
						n,
						c, //nr of channels
						10, //data height img.rows
						10); //data width img.cols

	if (status!=0)
	{
		printf("Error in miopenSet4dTensorDescriptor. Error code %d",status);
		return 0;
	}

	/* _______________KERNEL CREATION_____________________________ */	
	miopenTensorDescriptor_t KernelDescriptor;
	status = miopenCreateTensorDescriptor(&KernelDescriptor);	
	if (status!=0)
	{
		printf("Error in miopencreate. Error code %d",status);
		return 0;
	}

	status = miopenSet4dTensorDescriptor(	KernelDescriptor,
						miopenFloat,
						n,
						c, // nr of channels
						3, // filter height 
						3); // filter width
	if (status!=0)
	{
		printf("Error in miopenSet4dTensorDescriptor. Error code %d",status);
		return 0;
	}

	/* _________CREATING THE CONVOLUTION DESCRIPTOR______________ */
	miopenConvolutionDescriptor_t ConvDesc;
	status = miopenCreateConvolutionDescriptor(&ConvDesc);

	if (status!=0)
	{
		printf("Error in miopenCreateConvolutionDescriptor. Error code %d",status);
		return 0;
	}

	status = miopenInitConvolutionDescriptor(	ConvDesc,
							miopenConvolution,
							padding, //h
							padding, //w
							stride,	 //h
							stride,	 //w
							dilation, //h
							dilation); //w
	if (status!=0)
	{
		printf("Error in miopenCreateConvolutionDescriptor. Error code %d",status);
		return 0;
	}

	/* _________CONVOLUTION GET WORKSPACE SIZE______________ */
	miopenConvolutionDescriptor_t const const_ConvDesc = ConvDesc;
	miopenTensorDescriptor_t const const_KernelDescriptor = KernelDescriptor;
	miopenTensorDescriptor_t const const_InputTensorDesc = InputTensorDesc;
	miopenTensorDescriptor_t const const_OutputTensorDesc = OutputTensorDesc;

	status = miopenConvolutionForwardGetWorkSpaceSize(	Network,
								const_KernelDescriptor,
								const_InputTensorDesc,
								const_ConvDesc,
								const_OutputTensorDesc,
								&WorkSpaceSize );
	if (status!=0)
	{
		printf("Error in miopenConvolutionForwardGetWorkSpaceSize. Err code %d",status);
		return 0;
	}
	cout << "WorkSpaceSize = " << WorkSpaceSize << " bytes\n";

	/* _______OPENCL ALLOCATING MEMORY_______ */
	cl_platform_id platform;		// PLATFORM-TYPE
	clGetPlatformIDs(1, &platform, NULL);	// ADRESS TO PLATFORM
	cl_device_id device;			// DEVICE-TYPE
	clGetDeviceIDs(platform, CL_DEVICE_TYPE_GPU, 1, &device, NULL);	// ADRESS TO DEVICE
	cl_context context = clCreateContext(NULL, 1, &device, NULL, NULL, NULL); // CONTEXT
	
	// QUEUES
	cl_command_queue queue = clCreateCommandQueue(context, device, CL_QUEUE_PROFILING_ENABLE, NULL); 
	cl_command_queue queue2 = clCreateCommandQueue(context, device, CL_QUEUE_PROFILING_ENABLE, NULL); 
	cl_command_queue queue3 = clCreateCommandQueue(context, device, CL_QUEUE_PROFILING_ENABLE, NULL);
	cl_command_queue queue4 = clCreateCommandQueue(context, device, CL_QUEUE_PROFILING_ENABLE, NULL);

	// DECLARATIONS	
	char buf[4096]; 				// CHARBUFFER FOR DEVICE NAME
	cl_int errorcode;				// FOR ERRORCODES
	int buffSize = 1024*3600; 			// MEMORY TO ALLOCATE FOR WORKSPACE
	int imageSize = 1024*sizeof(int); 		// MEMORY TO ALLOCATE FOR THE IMAGE
	int outimageSize = 1024*sizeof(int); 		// MEMORY TO ALLOCATE FOR THE OUTIMAGE
	int kernelWeightsSize = 1024*sizeof(int); 	// MEMORY TO ALLOCATE FOR THE OUTIMAGE

	// ALLOCATE OBJECTS ON GPU
	cl_mem buff = clCreateBuffer(context, MEM_FLAG, buffSize, NULL, NULL); 
	cl_mem image = clCreateBuffer(context, MEM_FLAG, imageSize, NULL, NULL); 
	cl_mem outimage = clCreateBuffer(context, MEM_FLAG, outimageSize, NULL, NULL); 
	cl_mem kernelweights = clCreateBuffer(context, MEM_FLAG, kernelWeightsSize, NULL, NULL);

	// QUERIE DEVICE NAME
	errorcode = clGetDeviceInfo(device, CL_DEVICE_NAME, sizeof(buf), buf, NULL); 
  	if (errorcode != CL_SUCCESS) 
	{
		printf("Error getting cl Device Info");
		exit(-1);
	}
	printf("Device Name : %s\n", buf);

	// GET POINTER TO MEMORY IN GPU
	void *WorkSpace = clEnqueueMapBuffer(queue, buff, CL_TRUE, CL_MAP_WRITE | CL_MAP_READ, 0, buffSize, 0, NULL, NULL, &errorcode);
  	if (errorcode != CL_SUCCESS) 
	{
		printf("Error getting cl Device Info");
		exit(-1);
	}
	cout << "WorkSpace adress = " << WorkSpace << endl;
	cout << "Memeory allocated = " << buffSize << endl;

	int *imageDummy = (int*)clEnqueueMapBuffer(queue2, image, CL_TRUE, CL_MAP_WRITE | CL_MAP_READ, 0, imageSize, 0, NULL, NULL, &errorcode);
  	if (errorcode != CL_SUCCESS) 
	{
		printf("Error getting cl Device Info");
		exit(-1);
	}

	cout << "imageDummy adress = " << imageDummy << endl;
	cout << "Memeory allocated = " << imageSize << endl;

	// CREATING DUMMY IMAGE
	for (int i = 0; i < 100; i++) 
	{
		imageDummy[i] = 1;
	}

	// TESTING IF IMAGE IS ON GPU
	for (int i = 0; i < 100; i++) 
	{
		cout << imageDummy[i] << "  ";
	}
	cout << "\n\n\n";

	
	// GET POINTER TO MEMORY IN GPU
	
	void *outimagePtr = clEnqueueMapBuffer(queue3, outimage, CL_TRUE, CL_MAP_WRITE | CL_MAP_READ, 0, outimageSize, 0, NULL, NULL, &errorcode);
  	if (errorcode != CL_SUCCESS) 
	{
		printf("Error getting cl Device Info");
		exit(-1);
	}

	cout << "outimagePtr adress = " << outimagePtr << endl;
	cout << "Memeory allocated = " << outimageSize << endl;
	

	void *kernelWeightsPtr = clEnqueueMapBuffer(queue4, kernelweights, CL_TRUE, CL_MAP_WRITE | CL_MAP_READ, 0, kernelWeightsSize, 0, NULL, NULL, &errorcode);
  	if (errorcode != CL_SUCCESS) 
	{
		printf("Error getting cl Device Info");
		exit(-1);
	}


	/* _________CONVOLUTION FIND FORWARD ALGORITM______________ */
	miopenConvAlgoPerf_t PrefConvAlg;
	status = miopenFindConvolutionForwardAlgorithm(	Network,
							const_InputTensorDesc,
							imageDummy, 		//Data tensor
							const_KernelDescriptor,
							kernelWeightsPtr,		//Weights tensor
							const_ConvDesc,
							const_OutputTensorDesc,
							outimagePtr,		//Data tensor,
							requestAlgoCount,	//request algorithm count
							&returnedAlgoCount,	//returned Alg Count
							&PrefConvAlg,		//Pointer to union of best algo returned
							WorkSpace,		//Ptr to workspace required for the search
							WorkSpaceSize,		//size in bytes of the memory needed for find
							ExhaustiveSearch	//A boolean to toggle a full search of all algo and config
							);

	cout << "Find Algorithm finished\n";
	if (status!=0)
	{
		printf("Error in miopenFindConvolutionForwardAlgorithm. Error code %d /n",status);
		return 0;
	} 

	/* _________UNMAP THE POINTERs & CLEANING______________ */			
	clEnqueueUnmapMemObject(queue, buff, WorkSpace, 0, NULL, NULL);
	clEnqueueUnmapMemObject(queue2, image, imageDummy, 0, NULL, NULL);
	clEnqueueUnmapMemObject(queue3, outimage, outimagePtr, 0, NULL, NULL);
	clEnqueueUnmapMemObject(queue4, kernelweights, kernelWeightsPtr, 0, NULL, NULL);

	clReleaseMemObject(buff);
	clReleaseMemObject(image);
	clReleaseMemObject(outimage);
	clReleaseMemObject(kernelweights);
	clReleaseCommandQueue(queue);
	clReleaseCommandQueue(queue2);
	clReleaseCommandQueue(queue3);
	clReleaseCommandQueue(queue4);
	clReleaseContext(context);

	miopenDestroyConvolutionDescriptor(ConvDesc);
	miopenDestroyTensorDescriptor(InputTensorDesc);
	miopenDestroyTensorDescriptor(KernelDescriptor);
	miopenDestroyTensorDescriptor(OutputTensorDesc);
	miopenDestroy(Network);
	


    return 0;
}
@AdemSchen
Copy link
Author

We soulved the Seg fault(it was opencl issues) but got a warning and wondering if it's critical issue ?

MIOpen(OpenCL): Warning [FindRecordUnsafe] File is unreadable: /opt/rocm/miopen/share/miopen/db/gfx801_6.cd.pdb.txt

@dagamayank
Copy link
Contributor

@AdemSchen Looks like you are running on a system which we do not support. gfx801_6 gives that hint. You are using one of the APUs on which is ROCm is not supported and hence, MIOpen is also not supported.

pfultz2 pushed a commit that referenced this issue Jul 6, 2018
alexandraBara added a commit that referenced this issue Jan 14, 2022
0e164bf66 setting json version (#37)
f3f7fed18 Remove function redefinition (#36)
e1de51a58 Performance DB de-serialize test (#34)
043cdcdaa Layout support in Fin (#33)
3a1d58236 Hotfix (#32)
ee3f0d543 4.4 Tuning Bugfixes (#31)
832dbe234 Tunability Reporting (#27)
a564a229f include gfx90a_110 (#28)

git-subtree-dir: fin
git-subtree-split: 0e164bf66280932586e25e15d09c60b02cbd6fc3
junliume pushed a commit that referenced this issue Jan 19, 2022
0e164bf66 setting json version (#37)
f3f7fed18 Remove function redefinition (#36)
e1de51a58 Performance DB de-serialize test (#34)
043cdcdaa Layout support in Fin (#33)
3a1d58236 Hotfix (#32)
ee3f0d543 4.4 Tuning Bugfixes (#31)
832dbe234 Tunability Reporting (#27)
a564a229f include gfx90a_110 (#28)

git-subtree-dir: fin
git-subtree-split: 0e164bf66280932586e25e15d09c60b02cbd6fc3
cderb added a commit that referenced this issue Mar 8, 2022
a30a51bc6 remove unused header
7d2fd834c reduce scope of variable
f6e9abe79 clang format
834e9a397 remove comment
c8d6eb1a0 workspace rename
aa7d2ea24 Merge remote-tracking branch 'origin/develop' into cderb/miopen_perf
aaf13fb12 add to print for debug
ebd9aa6bd update member name (#43)
34e11fa70 Merge remote-tracking branch 'origin/develop' into cderb/miopen_perf
cb6c19d13 add search+update directives to execution context, add json examples for perf eval
85029077b connecting new fin functions for perf eval
d6d798efe add cu count (#39)
8e1989a9f Add find option for selecting only dynamic solvers (#38)
4d1e031fd add outputs and definitions
952538cb8 adding perf eval function, in progress
0e164bf66 setting json version (#37)
617dccd9c rename
5c35ae886 fixes for collecting kernel blobs
5cfea7c43 syntax fixes
2f2a4ed9f add test file
7175019f5 first rendition of perf_compile
f3f7fed18 Remove function redefinition (#36)
e1de51a58 Performance DB de-serialize test (#34)
043cdcdaa Layout support in Fin (#33)
3a1d58236 Hotfix (#32)
ee3f0d543 4.4 Tuning Bugfixes (#31)
832dbe234 Tunability Reporting (#27)
a564a229f include gfx90a_110 (#28)

git-subtree-dir: fin
git-subtree-split: a30a51bc6b4e3b1dedf6a37b429b287abf5784fc
cderb added a commit that referenced this issue Aug 3, 2022
30d699b9e Perf Eval Update (#60)
3535b948c PerfCompile and PerfEval changes (#59)
de79468d2 remove unneccessary solution check, add check for previously modified kernel names (#56)
6924286a2 miopen hash update (#55)
530399575 Refactor googletest infra to align with MIOpen (#53)
71c50d146 Datatype fix for BN (#57)
8abe2f5c6 Perf Eval updates, Add find info (#51)
e1c1ef0f5 filter find compile by solver input (#54)
722feea66 sp/chk precomp kernel 264 (#41)
b9aba2034 Batch norm find compile (#50)
359f3da80 Fix missing link directives in fin binary (#48)
a4020c1ba Cache Miss Fixes (#46)
2ec7ef44d Enable google test and compiling fin in the CI (#47)
8b6b453bc Applicability support for batch norm (#45)
44323aae9 Perf compile/eval for fin (#42)
ebd9aa6bd update member name (#43)
d6d798efe add cu count (#39)
8e1989a9f Add find option for selecting only dynamic solvers (#38)
0e164bf66 setting json version (#37)
f3f7fed18 Remove function redefinition (#36)
e1de51a58 Performance DB de-serialize test (#34)
043cdcdaa Layout support in Fin (#33)
3a1d58236 Hotfix (#32)
ee3f0d543 4.4 Tuning Bugfixes (#31)
832dbe234 Tunability Reporting (#27)
a564a229f include gfx90a_110 (#28)

git-subtree-dir: fin
git-subtree-split: 30d699b9edc014c6076a9649f849bd3c4588d4ab
averinevg pushed a commit that referenced this issue Aug 19, 2022
* add perf cfg validity test to TestSysDbRecord

* remove debug prints

* removing invalid entries from all perf dbs

* VACUUM sqlite

* Squashed 'fin/' changes from 53d2563fe..30d699b9e

30d699b9e Perf Eval Update (#60)
3535b948c PerfCompile and PerfEval changes (#59)
de79468d2 remove unneccessary solution check, add check for previously modified kernel names (#56)
6924286a2 miopen hash update (#55)
530399575 Refactor googletest infra to align with MIOpen (#53)
71c50d146 Datatype fix for BN (#57)
8abe2f5c6 Perf Eval updates, Add find info (#51)
e1c1ef0f5 filter find compile by solver input (#54)
722feea66 sp/chk precomp kernel 264 (#41)
b9aba2034 Batch norm find compile (#50)
359f3da80 Fix missing link directives in fin binary (#48)
a4020c1ba Cache Miss Fixes (#46)
2ec7ef44d Enable google test and compiling fin in the CI (#47)
8b6b453bc Applicability support for batch norm (#45)
44323aae9 Perf compile/eval for fin (#42)
ebd9aa6bd update member name (#43)
d6d798efe add cu count (#39)
8e1989a9f Add find option for selecting only dynamic solvers (#38)
0e164bf66 setting json version (#37)
f3f7fed18 Remove function redefinition (#36)
e1de51a58 Performance DB de-serialize test (#34)
043cdcdaa Layout support in Fin (#33)
3a1d58236 Hotfix (#32)
ee3f0d543 4.4 Tuning Bugfixes (#31)
832dbe234 Tunability Reporting (#27)
a564a229f include gfx90a_110 (#28)

git-subtree-dir: fin
git-subtree-split: 30d699b9edc014c6076a9649f849bd3c4588d4ab

* Squashed 'fin/' changes from 30d699b9e..ea5c844af

ea5c844af fix direction test
3aa412ee1 Update to use revised testSysDbRecord miopen function

git-subtree-dir: fin
git-subtree-split: ea5c844aff8b5d46537aa59034a596fd15cd9e1e

* rename pipe step

* Squashed 'fin/' changes from ea5c844af..c702cb968

c702cb968 format

git-subtree-dir: fin
git-subtree-split: c702cb96800a03b17ee17d03a015dfa38e3883b9

* Squashed 'fin/' changes from c702cb968..d5397abd3

d5397abd3 rename targets

git-subtree-dir: fin
git-subtree-split: d5397abd37b6908bcd96ef750ea5a3ace04cdf3c

* rename archive

Co-authored-by: Jun Liu <[email protected]>
cderb added a commit that referenced this issue Oct 5, 2022
e05dcb421 perf db validation fix (#68)
260d9465d Add INT8 as a data_type v2 (#67)
b6a5b2a77 sync with fin folder in miopen (#62)
0e03399ec prep for Palamida scan (#63)
e6bd05c33 Performance db testing (#61)
30d699b9e Perf Eval Update (#60)
3535b948c PerfCompile and PerfEval changes (#59)
de79468d2 remove unneccessary solution check, add check for previously modified kernel names (#56)
6924286a2 miopen hash update (#55)
530399575 Refactor googletest infra to align with MIOpen (#53)
71c50d146 Datatype fix for BN (#57)
8abe2f5c6 Perf Eval updates, Add find info (#51)
e1c1ef0f5 filter find compile by solver input (#54)
722feea66 sp/chk precomp kernel 264 (#41)
b9aba2034 Batch norm find compile (#50)
359f3da80 Fix missing link directives in fin binary (#48)
a4020c1ba Cache Miss Fixes (#46)
2ec7ef44d Enable google test and compiling fin in the CI (#47)
8b6b453bc Applicability support for batch norm (#45)
44323aae9 Perf compile/eval for fin (#42)
ebd9aa6bd update member name (#43)
d6d798efe add cu count (#39)
8e1989a9f Add find option for selecting only dynamic solvers (#38)
0e164bf66 setting json version (#37)
f3f7fed18 Remove function redefinition (#36)
e1de51a58 Performance DB de-serialize test (#34)
043cdcdaa Layout support in Fin (#33)
3a1d58236 Hotfix (#32)
ee3f0d543 4.4 Tuning Bugfixes (#31)
832dbe234 Tunability Reporting (#27)
a564a229f include gfx90a_110 (#28)

git-subtree-dir: fin
git-subtree-split: e05dcb42187f05fe0d0d1b05b822dc4b750f199e
junliume added a commit that referenced this issue Oct 6, 2022
* remove datatype 0,1 from perf_db

* rm invalid fp16 entries from pdb

* Squashed 'fin/' changes from 53d2563fe..e05dcb421

e05dcb421 perf db validation fix (#68)
260d9465d Add INT8 as a data_type v2 (#67)
b6a5b2a77 sync with fin folder in miopen (#62)
0e03399ec prep for Palamida scan (#63)
e6bd05c33 Performance db testing (#61)
30d699b9e Perf Eval Update (#60)
3535b948c PerfCompile and PerfEval changes (#59)
de79468d2 remove unneccessary solution check, add check for previously modified kernel names (#56)
6924286a2 miopen hash update (#55)
530399575 Refactor googletest infra to align with MIOpen (#53)
71c50d146 Datatype fix for BN (#57)
8abe2f5c6 Perf Eval updates, Add find info (#51)
e1c1ef0f5 filter find compile by solver input (#54)
722feea66 sp/chk precomp kernel 264 (#41)
b9aba2034 Batch norm find compile (#50)
359f3da80 Fix missing link directives in fin binary (#48)
a4020c1ba Cache Miss Fixes (#46)
2ec7ef44d Enable google test and compiling fin in the CI (#47)
8b6b453bc Applicability support for batch norm (#45)
44323aae9 Perf compile/eval for fin (#42)
ebd9aa6bd update member name (#43)
d6d798efe add cu count (#39)
8e1989a9f Add find option for selecting only dynamic solvers (#38)
0e164bf66 setting json version (#37)
f3f7fed18 Remove function redefinition (#36)
e1de51a58 Performance DB de-serialize test (#34)
043cdcdaa Layout support in Fin (#33)
3a1d58236 Hotfix (#32)
ee3f0d543 4.4 Tuning Bugfixes (#31)
832dbe234 Tunability Reporting (#27)
a564a229f include gfx90a_110 (#28)

git-subtree-dir: fin
git-subtree-split: e05dcb42187f05fe0d0d1b05b822dc4b750f199e

* fix clang-format issue

Co-authored-by: Jun Liu <[email protected]>
cderb added a commit that referenced this issue Nov 21, 2022
49e3e3a62 clang format
db80b1777 update to using TestPerfCfgParams for pdb validity checks
e48a4fd3a format
a4f85842c exception for non-tunable solvers in params check
d58c42bbd Check params at end of perf tuning (#70)
1a3b47c7b Return status for failed compile commands (#69)
d59962752 out_layout -> in_layout
6ba7a8f3f Rename conv_mode to mode (#64)
513a3da1b [bg/LWPTUNA-173] (#65)
e05dcb421 perf db validation fix (#68)
260d9465d Add INT8 as a data_type v2 (#67)
b6a5b2a77 sync with fin folder in miopen (#62)
0e03399ec prep for Palamida scan (#63)
e6bd05c33 Performance db testing (#61)
30d699b9e Perf Eval Update (#60)
3535b948c PerfCompile and PerfEval changes (#59)
de79468d2 remove unneccessary solution check, add check for previously modified kernel names (#56)
6924286a2 miopen hash update (#55)
530399575 Refactor googletest infra to align with MIOpen (#53)
71c50d146 Datatype fix for BN (#57)
8abe2f5c6 Perf Eval updates, Add find info (#51)
e1c1ef0f5 filter find compile by solver input (#54)
722feea66 sp/chk precomp kernel 264 (#41)
b9aba2034 Batch norm find compile (#50)
359f3da80 Fix missing link directives in fin binary (#48)
a4020c1ba Cache Miss Fixes (#46)
2ec7ef44d Enable google test and compiling fin in the CI (#47)
8b6b453bc Applicability support for batch norm (#45)
44323aae9 Perf compile/eval for fin (#42)
ebd9aa6bd update member name (#43)
d6d798efe add cu count (#39)
8e1989a9f Add find option for selecting only dynamic solvers (#38)
0e164bf66 setting json version (#37)
f3f7fed18 Remove function redefinition (#36)
e1de51a58 Performance DB de-serialize test (#34)
043cdcdaa Layout support in Fin (#33)
3a1d58236 Hotfix (#32)
ee3f0d543 4.4 Tuning Bugfixes (#31)
832dbe234 Tunability Reporting (#27)
a564a229f include gfx90a_110 (#28)

git-subtree-dir: fin
git-subtree-split: 49e3e3a62a7cc54adacbeea95680d35f9a4685de
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants